reactjs - oidc-client jest.mock() 不允许引用任何超出范围的变量
问题描述
我正在为使用 oidc-client 的身份验证服务设置一个测试类。
尝试模拟 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
则允许以(不区分大小写)为前缀的变量名。
推荐阅读
- node.js - 如何删除作者的留言?
- flutter - 当键盘打开/关闭时颤振重建小部件然后再次调用函数
- python - 从包含 Google Colaboratory 中图像目录的列表中创建一个包含 numpy 数组的列表
- intellij-idea - Intellij 删除键盘快捷键
- reactjs - 如何在 React 的 HOC 中重用模态窗口
- r - 特定值名称的 colSums
- c# - 将 RabbitMQ 与 .NET Core WebAPI 一起使用时丢失消息
- html - 在laravel bootstrap中将页脚固定到底部
- lucee - FarCry CMS 搜索结果未找到
- flutter - 有可能知道屏幕上显示的 DraggableScrollableSheet 的分数吗?