Jest mocking对特定文件不起作用



我在一个奇怪的文件状态(我使用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,它禁用了自动模拟。

相关内容

  • 没有找到相关文章

最新更新