如何模拟内部函数的实现?

时间:2019-01-03 10:13:40

标签: node.js jestjs

我想用玩笑来模拟内部函数的实现。有人可以帮忙吗?

现在结果是内部的,但我要模拟。

----------------- index.js -----------------

let mainFn = ()=>{
    return innerFn();
}

let innerFn = ()=>{
    return 'inner';
}

module.exports = {mainFn, innerFn};

------------------- index.test.js -----------------

let index = require('./index.js');

test('test', () => {
    index.innerFn = jest.fn().mockImplementation(()=>{return 'mock'});
    let result = index.mainFn();
    expect(result).toBe('mock');
})

1 个答案:

答案 0 :(得分:0)

我认为您应该将内部函数提取到单独的文件(模块)中。然后,您可以轻松模拟它:

jest.mock('./innerFn.js')

或例如:

jest.mock('./innerFn.js', () => 'mock')
相关问题