У меня есть этот фрагмент кода CoffeeScript в одном из моих представлений Backbone:
myMethod: ->
# some code here
$.when(
# ...
).done(
@myCallback
)
и я хочу проверить, что myCallback вызывается в готовом блоке.
Я не уверен, как это сделать в Mocha.js + Sinon.js. Я смог шпионить за jquery и проверить, вызывается ли метод when:
spy = sinon.spy($, 'when')
@view.myMethod()
spy.called.should.be.true
spy.restore()
Но я не могу сделать то же самое с готовым блоком, потому что, если я правильно его понял, он связан с отложенным объектом, возвращаемым методом 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
Есть идеи? :)
@myCallback
вместо@myCallback()
? Просто слепое предположение. Но $.done не существует.done
является частью объекта обещания, поэтому я думаю, что это будет$.Deferred().done
- person pocesar   schedule 23.01.2013