我在一个奇怪的文件状态(我使用Jest/React/Flux/Webpack)…下面是测试文件。
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> (srcmainjscomponentsApp.js:3:38)
at Object.<anonymous> (srcmainjsutilsCommonUtils.js:4:38)
at Object.<anonymous> (srctestjsdashboard-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,它禁用了自动模拟。