Sto cercando di implementare vista dei test per un'implementazione CoffeeScript dei backbone.js onnipresenti 'todo' esempio (vedi github.com/rsim/backbone_coffeescript_demo.)backbone.js test visualizzare gli eventi con il gelsomino
mio gelsomino i test della demo sopra funzionano abbastanza bene, ad eccezione degli eventi di visualizzazione. Mi aspetto che io sia bloccato su uno o entrambi i seguenti punti i) Non capisco il binding dell'evento nel codice della vista, ii) Non capisco come configurare correttamente il test Jasmine degli eventi del codice di visualizzazione.
Ecco un esempio della manifestazione 'modifica' ...
class TodoApp.TodoView extends Backbone.View
tagName: "li"
template: TodoApp.template '#item-template'
events:
"dblclick div.todo-content" : "edit"
...
initialize: ->
_.bindAll this, 'render', 'close'
@model.bind 'change', @render
@model.bind 'destroy', => @remove()
render: ->
$(@el).html @template @model.toJSON()
@setContent()
this
edit: ->
$(@el).addClass "editing"
@input.focus()
...
... ora ecco una prova di se messa a fuoco è stato ottenuto su un doppio clic:
describe "edit state", ->
li = null
beforeEach ->
setFixtures('<ul id="todo-list"></ul>')
model = new Backbone.Model id: 1, content: todoValue, done: false
view = new TodoApp.TodoView model: model, template: readFixtures("_item_template.html")
$("ul#todo-list").append(view.render().el)
li = $('ul#todo-list li:first')
target = li.find('div.todo-content')
expect(target).toExist()
target.trigger('dblclick') # here's the event!
it "input takes focus", ->
expect(li.find('.todo-input').is(':focus')).toBe(true)
L'aspettativa su né io) la spia né ii) l'attenzione è soddisfatta.
Esiste una particolarità nel test del codice dell'evento backbone.js su cui dovrei essere a conoscenza in Jasmine?
Sto incontrando lo stesso problema. Hai trovato una soluzione per questo? –
@Michal - no non l'ho fatto. – Lille
Anche avendo un problema simile, ancora nessuna idea? –