ventajas tutorial example español ejemplos desventajas backbone backbone.js fetch jasmine sinon

backbone.js - tutorial - backbone js ventajas y desventajas



La recolección de la columna vertebral no se completa con las especificaciones de Jasmine+Sinon (1)

Teoría: debe esperar que el "servidor" responda a la solicitud antes de verificar el resultado. Burlarse de la respuesta no es suficiente: la fetch todavía es asíncrona.

Pruebe con waits o waits más complicadas pero elegantes waitsFor Como se describe en https://github.com/pivotal/jasmine/wiki/Asynchronous-specs.

Cuando ejecuto esta salida de especificación, obtengo "Esperado de 0 en 2". 2 es la longitud correcta de los objetos modelo en mi accesorio para que el servidor falso de Sinon responda adecuadamente con la respuesta burlada. No puedo entender por qué mi colección tiene cero objetos después de buscar a continuación. ¡Cualquier ayuda sería realmente apreciada!

FYI: esto viene de seguir el tutorial Backbone Sinon + Jasmine aquí: http://tinnedfruit.com/2011/03/25/testing-backbone-apps-with-jasmine-sinon-2.html

Especulación:

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

Modelo:

class window.Todos extends Backbone.Collection model: window.Todo url: "/todos" comparator: (todo) -> todo.get(''priority'') parse: (res) -> res.response.todos

EDITAR:

Buck Doyle a continuación me ha ayudado a ver que no hay problema con las especificaciones. Tengo algún tipo de problema con mi configuración de Jasmine Headless Webkit, y si las especificaciones se ejecutan con Jasmine independiente, pasan.