【发布时间】:2013-04-04 15:28:32
【问题描述】:
我正在使用 Jasmine 和 Sinon 测试我的 Backbone 应用程序,但遇到了一些麻烦。我正在尝试测试初始化视图时是否调用了渲染
我有以下观点:
var MyView = Backbone.View.extend({
el: '#myElement',
initialize : function() {
var that = this;
this.collection.fetch({
error : function() {
alert("error!");
},
success : function() {
that.render();
}
});
},
render : function() {
this.collection.each(this.renderItem);
}
...
我的测试
it('Should call render when view is instantiated', function(){
spyOn(MyView.prototype, 'render');
var myCollection = new MyCollection();
this.view = new MyView({collection: myCollection});
expect(MyView.prototype.render).toHaveBeenCalled();
});
问题是在我的 fetch 的成功回调执行之前调用了 expect()。解决此问题的最佳方法是什么?
【问题讨论】:
-
你为什么不在你的渲染方法中加入类似 alert 或 console.log 的东西?
-
我正在编写一个自动化测试套件。将来我想关注测试驱动开发。
标签: testing backbone.js jasmine backbone-views sinon