这是我对Javacript与Mocha / Sinon / Chai的第一次测试我不知道是否可以这样做:
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间谍与事件合作?
答案 0 :(得分:1)
问题是你首先将函数绑定到事件,然后用{谍}替换obj
中的函数。这样做对您绑定到事件的功能没有任何影响,因为这仍然是原始功能。
测试一下你必须在实例化你的objManager
之前创建间谍。