我尝试用玩笑来模拟 npm 模块 jsonwebtoken 的验证功能。该函数返回一个已解码的令牌,但我想将此函数的自定义返回传递给我的单元测试。
我明确请求在继续请求之前检查访问令牌的有效性。但我想模拟令牌检查的时刻以直接返回用户值。并且轻松通过这一步。我把代码中关注的部分给你了。
但打字稿向我发送此错误: 类型 '{ 上不存在属性 'mockReturnValue' (令牌:字符串,secretOrPublicKey:秘密,选项?:VerifyOptions | 未定义):字符串 | 目的; (令牌:字符串,secretOrPublicKey:字符串 | 缓冲区 | { 密钥:字符串 | 缓冲区;密码:字符串; } | GetPublicKeyOrSecret,回调?:VerifyCallback | 未定义):void;(令牌:字符串,secretOrPublicKey:字符串| ... ...'。
所以模拟不起作用,我不明白。我遵循 Jest.io 上的模拟 axios 步骤,但它似乎不适用于 jsonwebtoken。
每个人都知道问题是什么或者如何在 jest 上模拟这个 jsonwebtoken 模块吗?
用户.test.ts
import jwt from 'jsonwebtoken'
jest.mock('jwt')
jwt.verify.mockReturnValue({
userId: String(member._id),
email: String(member.email),
permissionLevel: member.permissionLevel,
username: String(member.username),
})
describe('### /GET users', () => {
it('it should return 200 (Users List)', async (done) => {
const res = await request(app).set('Authorization', 'Bearer').get('/users') …Run Code Online (Sandbox Code Playgroud)