试图理解 rewire/sinon 但无法弄清楚为什么这个基本示例不起作用。我希望输出是“调用假”-1,但我得到的是:
调用原始 2
main.js
const rewire = require('rewire');
const sinon = require('sinon');
const calcRewire = rewire('./calc');
calcRewire.__set__({
add: sinon.stub().callsFake(() => {
console.log('calling fake');
return -1;
}),
});
console.log(calcRewire.add(1, 1));
计算.js
const add = (a, b) => {
console.log('calling original');
return a + b;
};
module.exports = {
add,
};
请注意,如果我不使用 rewire 并且只存根原始模块但试图理解为什么这个 rewire 示例不起作用,它可以正常工作。