我有一个方法可以导入一个带有解构的方法。我试图窥探这种方法,但一直遇到错误。
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);
此单元测试将通过。
答案 0 :(得分:2)
Sinon的间谍方法无法修改功能。函数在Javascript中不可变。 Sinon的间谍方法可以在你的第一个例子中创建一个新函数(additionSpy
),或者它可以修改一个对象并替换它上面的方法(你的第二个例子)。你的第二个例子看起来正确你想做什么。