在Jest中模拟jwt解码

hc8w905p  于 5个月前  发布在  Jest
关注(0)|答案(2)|浏览(117)

为了测试的目的,我需要模拟jwt-decode库。我使用它如下:

const decodedToken: { exp: number } = jwt_decode(token);

字符串
然后在测试中尝试了以下操作,并得到了如下错误:

jest.mock('jwt-decode');


TypeError:无法读取未定义的属性“exp”

jest.mock('jwt-decode', () => ({
  exp: 123,
}));


TypeError:(0,_jwtDecode.default)不是函数

bwntbbo3

bwntbbo31#

问题在于jest.mock的第二个参数。在您的示例中,它是一个返回对象的函数:

jest.mock('jwt-decode', () => ({ ... }))

字符串
但是由于你试图模仿的属性是模块的默认导出,参数需要是一个函数,该函数返回一个返回对象的函数:

jest.mock('jwt-decode', () => () => ({ ... }))

ssm49v7z

ssm49v7z2#

jest.mock('jwt-decode', () => ({
  jwtDecode: () => 'some-name',
}));

字符串

相关问题