我有一个方法,我在其中导入一个解构方法。我正在尝试监视此方法,但一直遇到错误。
const { addition } = require('./my-math-lib');
const additionSpy = sinon.spy(addition);
testMethod.doMath();
expect(additionSpy.calledOnce).to.be.equal(true);
不幸的是,这个单元测试不起作用。当我查看 additionSpy 对象时,我发现 notCalled 为真。
如果我将代码更改为 -
const mathStuff = require('./my-math-lib');
const additionSpy = sinon.spy(mathStuff, 'addition');
testMethod.doMath();
expect(additionSpy.calledOnce).to.be.equal(true);
这个单元测试会通过。
最佳答案
诗乃的 spy 方法不能修改函数。函数在 Javascript 中是不可变的。 Sinon 的 spy 方法可以创建一个新函数(additionSpy
在您的第一个示例中),或者它可以修改一个对象并替换其上的方法(您的第二个示例)。你的第二个例子看起来很适合你想做的事。
关于javascript - 监视解构的 require 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37737961/