У меня есть модель магистрали:
class DateTimeSelector extends Backbone.Model
initialize: ->
@bind 'change:date', @updateDatetime
@bind 'change:time', @updateDatetime
updateDatetime: =>
# do some stuff with the sate and time
И у меня есть несколько тестов для этого кода с использованием jasmin и sinon.js
describe "DateTimeSelector", ->
beforeEach ->
@datetime = new DateTimeSelector()
describe "updateDatetime", ->
beforeEach ->
@updateSpy = sinon.spy(@datetime, 'updateDatetime')
afterEach ->
@datetime.updateDatetime.restore()
# passes
it "should be called when we call it", ->
@datetime.updateDatetime()
expect(@updateSpy).toHaveBeenCalledOnce()
# fails
it "should be called when we trigger it", ->
@datetime.trigger 'change:date'
expect(@updateSpy).toHaveBeenCalled()
# fails
it "should be called when we set the date", ->
@datetime.set { date: new Date() }
expect(@updateSpy).toHaveBeenCalled()
Кажется, это работает, когда я использую его в браузере, но я не могу пройти тесты. Кто-нибудь может просветить меня?
coffeescript
. Я бы добавил его для вас, но у вас максимум 5, и я не хотел решать, какой из них заменить для вас. - person Kai   schedule 09.12.2011@updateDatetime
тем, который вы ожидали, а не вызван ли он, потому что это функциональность, которую вы получаете от магистрали, и вы должны доверять им, что они проверили свои вещи. - person Andreas Köberle   schedule 10.12.2011