Trzeba sinon naśladować odpowiedzi serwera. Biblioteka ta zawiera narzędzia tak:
this.server.respondWith("GET", "/episode/123",
[200, {"Content-Type": "application/json"},
'{"id":123,"title":"Hollywood - Part 2"}']);
Więc gdy masz model z odcinka i id 123 root sinon wróci to na wezwanie pobierania.
Przeczytaj to: http://tinnedfruit.com/2011/03/03/testing-backbone-apps-with-jasmine-sinon.html
Aktualizacja: Dodanie drugiego obejścia jako wniosek pytającego. Metoda zapisywania.
// Użyj tego w badaniach zamiast backbone.js Modelu
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({
});
Jednak nadal jestem Proponuję użyć sinon. Prześmiewanie się z Backbone.js nie jest eleganckie, a także obsługuje kody odpowiedzi w nagłówku, a inne rzeczy są również bardziej skomplikowane i stanowią rodzaj odkrywczego koła. Podczas gdy z sinonem wystarczy dodać bibliotekę, utwórz odpowiedź serwera.
Używam następujące technologie: backbone.js, require.js, jquery, Rest services przez WebAPI. z jaśminu kpię z obiektu modelu i wiążę go z widokiem do testowania jednostkowego. kiedy otrzymam odpowiedź z widoku na model próbny, jak jednostronnie zareagować na zachowanie (sukces, błąd) modelu. nie ma sposobu, aby przetestować modele odpowiedzi bez grzechu. – Gururaj
Sinon jest po prostu inną biblioteką JavaScript, nie wiem, dlaczego nie możesz go dodać. W każdym razie, inne obejście polega na zastąpieniu metody zapisu. Dodam to obejście w mojej odpowiedzi. –