devi Sinon di emulare le risposte del server. Questa libreria ha utilità come questo:
this.server.respondWith("GET", "/episode/123",
[200, {"Content-Type": "application/json"},
'{"id":123,"title":"Hollywood - Part 2"}']);
Così ogni volta che si dispone di un modello con l'episodio della radice e l'ID 123, Sinon tornerà questo su una chiamata di recupero.
Leggi questo: http://tinnedfruit.com/2011/03/03/testing-backbone-apps-with-jasmine-sinon.html
Aggiornamento: L'aggiunta di una seconda soluzione come richiesta richiedente. Metodo di salvataggio mocking.
// Utilizzare questo nei test invece di Backbone.js Modello
var ExtendedModel = Backbone.Model.extend({
//mocked save:
save : function(data, options){
if(data){
this.set(data);
}
var mocked = this.toJSON();
if(!mocked.id){
mocked.id = new Date().getTime();
}
mocked = this.parse(mocked);
if(options.success){
options.success(this);
}
if(options.error){
options.error(this);
}
}
});
var MyModel = ExtendedModel.extend({
});
Tuttavia io sono ancora suggerisco di utilizzare Sinon. Mocking the Backbone.js non è ellegante e supporta anche i codici di risposta dell'header e altre cose sono anche più complesse e una sorta di reinventare la ruota. Mentre con sinon hai solo bisogno di aggiungere la libreria e creare una risposta al server.
fonte
2013-05-06 00:18:00
Sto usando la le seguenti tecnologie: backbone.js, require.js, jquery, servizi di Rest su WebAPI. dal gelsomino, sto prendendo in giro l'oggetto del modello e mi lego a una vista per il test delle unità. quando ottengo la risposta dalla vista al modello di simulazione, come unire le risposte di salvataggio (di successo, di errore) del modello. non c'è un modo per testare unitamente le risposte del modello senza sinon. – Gururaj
Sinon è solo un'altra lib JavaScript, non è sicuro del perché non è possibile aggiungerlo. Ma in ogni caso, un'altra soluzione è sovrascrivere il metodo di salvataggio. Aggiungerò questa soluzione alla mia risposta. –