【发布时间】:2012-08-19 22:50:45
【问题描述】:
这些天来,我正在尝试为我的第一个严肃的 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 响应评估测试断言。
有人可以建议我一种使它工作的方法吗?谢谢!
【问题讨论】:
标签: backbone.js qunit sinon