この仕様の出力を実行すると、「期待値0は2になります。 2は私のフィクスチャのモデルオブジェクトの正しい長さですので、SinonのfakeServerは模擬応答で正しく応答しています。なぜ私のコレクションがフェッチした後にオブジェクトがゼロであるのかわかりません。どんな助けでも本当にありがとう!これはここバックボーンSinon +ジャスミンのチュートリアルに沿って、次から来ている:http://tinnedfruit.com/2011/03/25/testing-backbone-apps-with-jasmine-sinon-2.htmlJasmine + Sinonの仕様では、バックボーンコレクションの取り込みが行われません
仕様:
describe "Todos collection", ->
describe "when fetching models from the server", ->
beforeEach ->
@todo = sinon.stub(window, "Todo")
@todos = new Todos()
@fixture = @fixtures.Todos.valid
@server = sinon.fakeServer.create()
@server.respondWith "GET", "/todos", @validResponse(@fixture)
afterEach ->
@todo.restore()
@server.restore()
it "should parse todos from the response", ->
@todos.fetch()
@server.respond()
expect(@todos.length).toEqual @fixture.response.todos.length
モデル:
class window.Todos extends Backbone.Collection
model: window.Todo
url: "/todos"
comparator: (todo) ->
todo.get('priority')
parse: (res) ->
res.response.todos
EDIT:
バックをFYI
下記のDoyleはスペックの問題がないことを私に助けてくれました。 Jasmine Headless Webkitの設定で何らかの問題が発生し、Jasmineスタンドアロンで仕様が実行されていれば、それらはパスします。
で説明したよう
waits
以上のエレガントな複雑な - しかし-waitsFor
を試してみてください? –