Backbone.js 如何模拟BackboneJS模型的错误回调(在destroy中)?

Backbone.js 如何模拟BackboneJS模型的错误回调(在destroy中)?,backbone.js,callback,jasmine,marionette,backbone-model,Backbone.js,Callback,Jasmine,Marionette,Backbone Model,鉴于以下情况: 您将如何模拟出现故障,以便测试相关行为(例如用户通知警报消息)?我在这个项目中用于测试。如果您想测试错误回调…您可以使用 在before块中定义服务器: var server, aProductInstance; beforeEach(function() { server = sinon.fakeServer.create(); aProductInstance = new Product.Model({id: 999}); }); 每次测试后恢复: afterEa

鉴于以下情况:


您将如何模拟出现故障,以便测试相关行为(例如用户通知警报消息)?我在这个项目中用于测试。

如果您想测试错误回调…您可以使用

在before块中定义服务器:

var server, aProductInstance;

beforeEach(function() {
  server = sinon.fakeServer.create();
  aProductInstance = new Product.Model({id: 999});
});
每次测试后恢复:

afterEach(function() {
  server.restore();
});
在测试中,使用respondWith方法返回非200响应

server.respondWith(method, url, response);
像这样

describe("fail to destroy", function() {
  it("calls the error callback", function() {
    server.respondWith("DELETE", "/products/destroy", [500, { "Content-Type": "application/json" }, '{ "error": "bad request" }']);

    //call the method
    aProductInstance.destroy();

    //send the response
    server.respond();

    //now write your tests to see if error callback is called.
  });
});

如果您想测试错误回调…您可以使用

在before块中定义服务器:

var server, aProductInstance;

beforeEach(function() {
  server = sinon.fakeServer.create();
  aProductInstance = new Product.Model({id: 999});
});
每次测试后恢复:

afterEach(function() {
  server.restore();
});
在测试中,使用respondWith方法返回非200响应

server.respondWith(method, url, response);
像这样

describe("fail to destroy", function() {
  it("calls the error callback", function() {
    server.respondWith("DELETE", "/products/destroy", [500, { "Content-Type": "application/json" }, '{ "error": "bad request" }']);

    //call the method
    aProductInstance.destroy();

    //send the response
    server.respond();

    //now write your tests to see if error callback is called.
  });
});

你认为我有没有可能在不涉及服务器的情况下模拟客户端
产品
模型的响应?这种方法不涉及真正的服务器。明白。尽管如此,我还是希望避免这种情况。如果您不想使用任何库,可以只存根$.ajax方法。像这样:你认为我有没有可能在不涉及服务器的情况下模拟客户端<代码>产品模型的响应?这种方法不涉及真正的服务器。明白。尽管如此,我还是希望避免这种情况。如果您不想使用任何库,可以只存根$.ajax方法。像这样: