sinon 间谍未检测到函数调用

Vil*_*oja 5 javascript node.js sinon chai

我正在尝试使用 sinonJS 框架进行 nodeJS 单元测试。问题是,我根本无法让诗乃间谍工作。这是我的代码:

const callback = sinon.spy(someModule.callback)

mainModule.doSomethingFunction() //someModule.callback function is called inside this function

assert(callback.calledOnce, 'callback should be called once')
Run Code Online (Sandbox Code Playgroud)

它只是失败了:

AssertionError:回调应该被调用一次

但我正在登录应该调用的函数,它清楚地表明它正在被调用,sinon 间谍只是没有检测到它。我想知道怎么了?

car*_*ant 2

要将对象方法包装在间谍中,您可以sinon像这样使用:

const callback = sinon.spy(someModule, 'callback');
mainModule.doSomethingFunction();
assert(callback.calledOnce, 'callback should be called once');
callback.restore();
Run Code Online (Sandbox Code Playgroud)

restore请注意,当您完成打开间谍软件的包装后,应该致电。