我正在使用 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()。解决此问题的最佳方法是什么?