tengo un modelo Backbone:¿Por qué no se llama a este espía sinon cuando ejecuto esta prueba?
class DateTimeSelector extends Backbone.Model
initialize: ->
@bind 'change:date', @updateDatetime
@bind 'change:time', @updateDatetime
updateDatetime: =>
# do some stuff with the sate and time
y tengo algunas pruebas de que el código usando jasmin y 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()
Parece que funciona cuando lo uso en el navegador, pero no puedo parecen hacer que las pruebas pasen. ¿Alguien puede iluminarme?
Es posible que desee volver a etiquetar para incluir 'coffeescript'. Te lo habría agregado pero estás al máximo a las 5 y no quería decidir cuál reemplazar por ti. – Kai
Sí, nunca sé qué hacer en esta situación. La pregunta está escrita en Coffee obviamente, pero el problema y la solución no están (probablemente) relacionados con coffeescript. Así que no sé si es correcto etiquetar como coffeescript. –
Bueno, miré esta pregunta porque estaba etiquetada JS; pero no puedo ayudar porque el ejemplo es coffeescript que no utilizo yo mismo. Así que pensé que una etiqueta de coffeescript podría atraer a otros usuarios de coffeescript, que podrían leer y comprender más fácilmente tu ejemplo. :) – Kai