如何使用Jest和babel-jest模拟导入es6导出方法

时间:2018-09-08 12:08:15

标签: javascript node.js unit-testing jestjs

我有以下名为index.js

的模块
export function iWantToMockThis(a) {
    return a + 1;
}

export function foo(a) {
    return iWantToMockThis(a);
}

以及以下测试

import {foo} from '../src/index';

describe("testing mock es6", () => {
    jest.doMock('../src/index', () => ({
        foo: jest.requireActual('../src/index').foo,
        iWantToMockThis: jest.fn(() => 99)
    }));

    test('mocking barProp', ()=> {
        expect(foo(2)).toBe(99); // <-- it should be 99 but its 3
    })

});

这只是我试图实现更大规模的一个小例子,根据设计,iWantToMockThis必须位于同一模块中,但是我找不到模拟它并返回我所得到的方法的方法想要使用foo方法。

有什么主意吗?

某些上下文:

  • 在es6导入之前,我尝试了很多事情,例如jest.mock
  • 玩笑的默认配置

完整示例: https://github.com/juanpicado/jest_mock_es6_example

0 个答案:

没有答案