1

main.js是这样的

const p0 = (a, b) => (a+b)
const p1 = (a, b) => {
    return p0(a, b) + 10;
}
module.exports = { p1 }

测试代码

const rewire = require('rewire');
const myMod = rewire('main');
    it('.test p0', async() => {
        const mockP0 = (a, b) => (a*b);

        myMod.__set__(p0, mockP0);
        return p1(2, 10);
    });

ReferenceError: p0 未定义

我认为 rewire 可以访问私有功能,请问如何解决这个问题?谢谢 !

4

1 回答 1

2

第一个参数应该是字符串或对象。

尝试

myMod.__set__('p0', mockP0);  

或者

myMod.__set__({p0: mockP0});  
于 2020-11-11T23:24:04.137 回答