我使用Backbone,并在accountsView.js中具有以下函数:
loadData: function () {
this.accountsCollection.fetch()
.done(_.bind(this.loadDefaultAccounts, this))
.fail(_.bind(this._accountsLoadFailed, this));
},
在qunit测试中,我试图这样嘲弄它:
sandbox.stub(Backbone.Collection.prototype, "fetch").yieldsTo("done", {});
但在运行测试时得到以下错误:
提取应生成“完成,”但没有传递具有此属性得对象.
我错过了什么?
2条答案
按热度按时间0md85ypi1#
yieldsTo
在我看来似乎是用来处理基于回调的代码。要模拟 AJAX 请求,您应该设置一个fake server并执行以下操作
deyfvvtc2#
所以感谢提示.为了我的测试工作的函数在视图应该像这样:
或者按照@TJ的建议在测试中使用假服务器。