モデルがイベントをトリガーしたときにビュー メソッドが呼び出されることをテストしようとしています。しかし、これは機能していません。なぜこれが機能するのか、アイデアが尽きてしまいました。動作しないコードは次のとおりです。
意見:
class View extends Backbone.View
initialize: ->
@.listenTo @model, 'request', @disableForm, @
disableForm: ->
console.log 'disableForm'
ジャスミンテスト:
describe "AJAX events", ->
it "when starting an AJAX request, disable the form", ->
model = new Backbone.Model()
view = new Backbone.View( { model: model })
view.render()
spyOn(view, 'disableForm')
view.delegateEvents()
model.trigger 'request'
expect(view.disableForm).toHaveBeenCalled()
このコードはブラウザで正常に動作します。
また、テストを実行すると console.log に 'disableForm' が出力されるため、モデル イベントが disableForm の呼び出しをトリガーしていますが、私のスパイはこれを検出していません (私の期待は失敗します)。私はそれをwaitsForメソッドに入れてみましたが、彼も違いはありませんでした.
私が間違っているアイデアはありますか?