我正在为使用 oidc-client 的身份验证服务设置一个测试类。
当尝试模拟 oidc-client 的函数signinRedirect 时,我遇到了提升问题并抛出以下错误。我明白这个问题,但不知道如何解决。
``jest.mock()`` 的模块工厂不允许引用任何超出范围的变量。无效的变量访问: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 的名称更改为 mockMyFunc。
如果你的模拟变量是惰性的,你可以在它们前面加上mock前缀。我从几分钟前收到的错误描述的一小部分中获取了此信息:
Note: This is a precaution to guard against uninitialized mock variables. If it is ensured that the mock is required lazily, variable names prefixed with
mock
(case insensitive) are permitted.
关于reactjs - Oidc-client jest.mock() 不允许引用任何超出范围的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54692952/