Vto*_*one 5 javascript unit-testing require node.js sinon
我有一种方法可以导入带有解构的方法。我试图监视这个方法,但不断遇到错误。
const { addition } = require('./my-math-lib');
const additionSpy = sinon.spy(addition);
testMethod.doMath();
expect(additionSpy.calledOnce).to.be.equal(true);
Run Code Online (Sandbox Code Playgroud)
不幸的是这个单元测试不起作用。当我查看additionSpy 对象时,我发现notCalled 是true。
如果我将代码更改为 -
const mathStuff = require('./my-math-lib');
const additionSpy = sinon.spy(mathStuff, 'addition');
testMethod.doMath();
expect(additionSpy.calledOnce).to.be.equal(true);
Run Code Online (Sandbox Code Playgroud)
这个单元测试将会通过。
诗乃的spy方法无法修改函数。Javascript 中的函数是不可变的。Sinon 的间谍方法可以创建一个新函数(additionSpy在您的第一个示例中),或者它可以修改一个对象并替换其上的方法(您的第二个示例)。您的第二个示例看起来适合您想要做的事情。
| 归档时间: |
|
| 查看次数: |
735 次 |
| 最近记录: |