我在我的一个主干视图中有这段 CoffeeScript 代码:
myMethod: ->
# some code here
$.when(
# ...
).done(
@myCallback
)
我想测试 myCallback 在 done 块中是否被调用。
我不确定如何在 Mocha.js + Sinon.js 中执行此操作。我能够监视 jquery 并检查是否调用了 when 方法:
spy = sinon.spy($, 'when')
@view.myMethod()
spy.called.should.be.true
spy.restore()
但是我不能对 done 块做同样的事情,因为如果我理解正确的话,它与 when 方法返回的延迟对象有关。
我也尝试过这样的事情:
# NOT WORKING CODE
stub = sinon.stub($.Deferred(), 'done').returns
myCallback: sinon.stub()
@view.myMethod()
stub.called.should.be.true
stub.restore()
但仍然得到:
expected false to be true
有任何想法吗?:)