我一直在使用sinon很长一段时间,它完美无缺。但是现在我们开始使用Q承诺,看起来像是与sinon间谍打破了。
例如:
var spy = sandbox.spy(someApi,"callFn")
// success: return a promise fulfilled with `5`:
someStub.withArgs("foo").returns(Q.resolve(5));
我能够做到这一点,这反过来解决了这个承诺。通过添加then
语句,我能够看到console.log
承诺块正在执行:
promise.then(function(){
console.log("comes here") // <---- gets printed
someApi.callFn() // <--- spies on this are failing
})
即使调用callFn
,spy
仍称callCount
为0
。我真的不确定,为什么sinon无法窥探在promise then
块内调用的函数。
我在这里遗漏了什么吗?请告诉我以解决我的问题。