Bạn cần Sinon bắt chước phản ứng máy chủ. Thư viện này có các tiện ích như sau:
this.server.respondWith("GET", "/episode/123",
[200, {"Content-Type": "application/json"},
'{"id":123,"title":"Hollywood - Part 2"}']);
Vì vậy, bất cứ khi nào bạn có Mô hình có tập gốc và id 123, sinon sẽ trả lại cuộc gọi này.
đọc này: http://tinnedfruit.com/2011/03/03/testing-backbone-apps-with-jasmine-sinon.html
Cập nhật: Thêm một workaround thứ hai là yêu cầu hỏi. Mocking phương pháp lưu.
// Sử dụng này trong các thử nghiệm của bạn thay vì Backbone.js Mẫu
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({
});
Tuy nhiên tôi vẫn khuyên bạn nên sử dụng Sinon. Việc chế nhạo Backbone.js không phải là ngôn từ và cũng hỗ trợ các mã phản hồi tiêu đề và các công cụ khác cũng phức tạp hơn và một loại tái tạo lại bánh xe. Trong khi với sinon bạn chỉ cần thêm thư viện một phản ứng máy chủ tạo.
Nguồn
2013-05-06 00:18:00
Tôi đang sử dụng các công nghệ sau backbone.js, require.js, jquery, các dịch vụ còn lại trên WebAPI. từ hoa nhài, tôi đang chế nhạo đối tượng mô hình và liên kết với một cái nhìn để kiểm tra đơn vị. khi tôi nhận được phản hồi từ khung nhìn đến mô hình giả, làm thế nào để đơn vị phản hồi lưu (thành công, lỗi) của mô hình. không có cách nào để kiểm tra đơn vị phản ứng của mô hình mà không có tội lỗi. – Gururaj
Sinon chỉ là JavaScript khác, không chắc chắn lý do tại sao bạn không thể thêm nó. Nhưng dù sao, cách giải quyết khác là ghi đè phương thức lưu. Tôi sẽ thêm cách giải quyết đó vào câu trả lời của tôi. –