Jest mocking不适用于特定文件
问题描述:
我处于奇怪的状态(我使用Jest/React/Flux/Webpack)...这里是测试文件。Jest mocking不适用于特定文件
jest.unmock('../dashboard');
import CommonUtils from "../utils/CommonUtils";
describe('Dashboard Page',() => {
it('creates',() => {
...
});
});
当我运行测试,抛出一个错误:
● Runtime Error
- TypeError: (0 , _shouldUpdate2.default) is not a function
...
at Object.<anonymous> (src\main\js\components\App.js:3:38)
at Object.<anonymous> (src\main\js\utils\CommonUtils.js:4:38)
at Object.<anonymous> (src\test\js\dashboard-test.js:3:46)
这里,CommonUtils
显然不是嘲笑。在我的其他文件中,自动模拟工作得很好。
如果我添加在测试文件的开头:
jest.mock('../utils/CommonUtils');
以前同样的错误。不过,如果我补充一点:
jest.mock('../utils/CommonUtils',() => {
return {someFunc: jest.fn()};
});
CommonUtils
现在嘲笑,但我不能比较来自someFunc
的模拟对象,因为它总是被重新创建...并且我不能创建外部变量
var a = {someFunc: jest.fn()};
jest.mock('../utils/CommonUtils',() => {
return a;
});
Jest不允许!
答
最后我已经更新了Jest,并且它禁用了自动模拟。这不是确定性的,但不能重现。
你想要测试'someFunc'来调用某些东西吗?你可以显示你的代码 – grgmo
最后,我已禁用automock,这太棘手。谢谢! –