我有一个方法,我用解构来导入一个方法。我试图监视这个方法,但总是遇到错误。
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);此单元测试将通过。
发布于 2016-06-10 07:58:37
Sinon的spy方法不能修改函数。函数在Javascript中是不可变的。Sinon的spy方法可以创建一个新函数(第一个示例中的additionSpy),也可以修改对象并替换对象上的方法(第二个示例)。您的第二个示例看起来对您想要做的事情是正确的。
https://stackoverflow.com/questions/37737961
复制相似问题