0

试图理解 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 示例不起作用,它可以正常工作。

4

0 回答 0