javascript – 使用sinon间谍验证函数调用和检查参数
作者:互联网
我想验证我的单元测试中foo()内部调用了bar().
我认为Sinon spies可能是合适的,但我不知道如何使用它们.
有没有办法检查方法是否被调用?也许甚至提取bar()调用中使用的参数?
var spy = sinon.spy(foo);
function foo(){
bar(1,2,3);
}
function bar(){ }
foo();
// what to do with the spy?
解决方法:
在你的情况下,你试图看看是否调用了bar,所以你想要窥探bar而不是foo.
如doc中所述:
function bar(x,y) {
console.debug(x, y);
}
function foo(z) {
bar(z, z+1);
}
// Spy on the function "bar" of the global object.
var spy = sinon.spy(window, "bar");
// Now, the "bar" function has been replaced by a "Spy" object
// (so this is not necessarily what you want to do)
foo(1);
bar.getCall(0).args => should be [1,2]
现在,监视函数内部强烈地将你对“foo”的测试与它的实现结合起来,所以你将陷入通常的“mockist vs classical”辩论中.
标签:javascript,unit-testing,sinon 来源: https://codeday.me/bug/20191001/1837541.html