Javascript 使用Sinon Js测试事件触发器后调用的回调
这是我第一次使用Mocha/Sinon/Chai对JavaScript进行测试,我不知道是否可以这样做:Javascript 使用Sinon Js测试事件触发器后调用的回调,javascript,events,sinon,spy,Javascript,Events,Sinon,Spy,这是我第一次使用Mocha/Sinon/Chai对JavaScript进行测试,我不知道是否可以这样做: var obj = { first : function () { console.log('make job 1'); } }; var objManager = function() { $(document).on('event1', obj.first); }; new objManager(); var spy = sinon.spy(
var obj = {
first : function () {
console.log('make job 1');
}
};
var objManager = function() {
$(document).on('event1', obj.first);
};
new objManager();
var spy = sinon.spy(obj, 'first');
describe('Test', function () {
it('My first test', function () {
$(document).trigger('event1');
spy.should.not.have.been.called;
});
});
我的间谍没有接到电话,我不明白为什么。。。我的函数“obj.first”打印了“make job 1”
如果我通过以下方式修改我的测试:
it('My first test', function () {
obj.first();
spy.should.not.have.been.called;
});
我的间谍被叫来了。
所以我的问题是:如何让sinon spy与事件一起工作 问题在于首先将函数绑定到事件,然后用spy替换
obj
中的函数。这样做不会对绑定到事件的函数产生任何影响,因为这仍然是原始函数
在实例化
objManager
之前,您必须先创建spy 问题在于首先将函数绑定到事件,然后用spy替换obj
中的函数。这样做不会对绑定到事件的函数产生任何影响,因为这仍然是原始函数
在实例化objManager
之前,您必须先创建spy