【问题标题】:correct way to mock function from package with jest用玩笑从包中模拟函数的正确方法
【发布时间】:2022-12-15 10:28:02
【问题描述】:

所以这就是我在控制器上初始化实例 aws-jwt-verify 的方式:

import { CognitoJwtVerifier } from 'aws-jwt-verify';    
const verifier = CognitoJwtVerifier.create({
     userPoolId: COGNITO_USER_POOL,
     tokenUse: 'access',
     clientId: COGNITO_CLIENT_ID,
    });

然后我尝试使用下面这样的玩笑来模拟我的单元测试中的实例:

const oauthMock = jest.fn();
jest.mock('aws-jwt-verify', () => {
  return {
    __esModule: true,
    CognitoJwtVerifier: jest.fn().mockImplementation(() => {
      return {
        create: () => oauthMock()
      };
    }),
  };
});

但我在下面收到此错误:

类型错误:aws_jwt_verify_1.CognitoJwtVerifier.create 不是 功能

我所做的是尝试像下面这样修改模拟:

jest.mock('aws-jwt-verify', () => ({
  CognitoJwtVerifier: jest.fn(() => {
    return {
      create: oauthMock()
    };
  }),
}));

仍然有同样的错误,我在这里错过了什么吗?谢谢

【问题讨论】:

    标签: node.js jestjs ts-jest


    【解决方案1】:

    我用这个解决了这个问题:

        jest.mock('aws-jwt-verify', () => {
      return {
        CognitoJwtVerifier: { create: jest.fn() },
      };
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-01
      • 2021-08-25
      • 2018-05-03
      • 2019-03-23
      • 1970-01-01
      • 2022-09-26
      • 2021-11-20
      相关资源
      最近更新 更多