Oidc-client jest.mock()不允许引用任何超出范围的变量

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (24)

我正在为使用oidc-client的auth服务设置一个测试类。

当试图模拟oidc-client的函数signinRedirect时,我正在提升问题,并且抛出了以下错误。我理解这个问题,但不知道如何解决它。

The module factory of ``jest.mock()`` is not allowed to reference any out-of-scope variables. Invalid variable access: myFunc

const myFunc = jest.fn();

jest.mock('oidc-client', () => ({
    UserManager: () => ({
        signinRedirect: myFunc
    })
}));

describe('oAuth', () => {
    it('should call signin redirect when login is called', () => {
        login();

        expect(myFunc).toHaveBeenCalled();
    });
});
提问于
用户回答回答于

尝试将myFunc的名称更改为模拟 MyFunc。

如果你的模拟变量是懒惰的,你可以用mock作为前缀。我从几分钟前得到的错误描述的一小部分中获取了这些信息:

注意:这是防止未初始化的模拟 变量的预防措施。如果确保模板是懒惰的,mock则允许使用前缀为(不区分大小写)的变量名称。

扫码关注云+社区

领取腾讯云代金券