这些天来,我正在尝试为我的第一个严肃的 Backbone 应用程序进行一些测试。到目前为止,我的正常测试没有问题,但现在我一直在尝试设置异步测试。
基本上,如果我尝试保存具有无效属性的模型并且我想检查这是否触发了 Backbone 中的正确“错误”状态,我的服务器 API 会返回一个带有 500 HTTP 代码错误的页面。
我试图以这种方式设置测试:
asyncTest("Test save Model function", function(){
expect(1);
var user = new User({});
var err_spy = this.spy();
user.on('error',err_spy);
user.save(user,{error:function(){
start();
equal( err_spy.callCount, 1, "Callback 'error' called once");
}});
});
问题是保存函数的错误回调会覆盖模型中的错误回调,因此触发它的唯一方法是手动执行:
user.trigger("error");
我认为这不是正确的测试方法,因为在我的生产环境中,模型的保存功能没有错误回调,但另一方面我不知道如何告诉 Qunit 等待 ajax 响应来评估测试断言。
有人可以建议我一种使它起作用的方法吗?谢谢!