【发布时间】:2014-07-12 11:57:22
【问题描述】:
我试图通过存根 Backbone.View 的 listenTo 回调方法来实现一个简单的测试。
但是,我似乎无法直接执行此操作 - 我必须将回调包装在匿名函数中。知道为什么会发生这种情况,我怎样才能避免包装器并仍然能够存根回调?
这不起作用:
// MyView.js
var MyView = Backbone.View.Extend({
initialize: function() {
this.listenTo('some:event', this.myFunc);
},
myFunc: function() {
//.. do useful stuff
}
});
// Trying to stub with sinon
var view = new MyView();
sinon.stub( view, 'myFunc' );
view.trigger('some:event');
view.myFunc.called; // is false;
但是,这是可行的:
// MyView.js
var MyView = Backbone.View.Extend({
initialize: function() {
this.listenTo('some:event', function() { this.myFunc });
},
myFunc: function() {
//.. do useful stuff
}
});
// Trying to stub with sinon
var view = new MyView();
sinon.stub( view, 'myFunc' );
view.trigger('some:event');
view.myFunc.called; // is true;
【问题讨论】:
标签: javascript testing backbone.js sinon