【问题标题】:Testing callback called after a event trigger with Sinon Js使用 Sinon Js 触发事件后调用的测试回调
【发布时间】:2013-03-12 04:18:42
【问题描述】:

这是我第一次使用 Mocha/Sinon/Chai 对 Javacript 进行测试,我不知道是否可以这样做:

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 与事件一起工作?

【问题讨论】:

    标签: javascript events sinon spy


    【解决方案1】:

    问题是你先将函数绑定到事件上,然后将obj中的函数替换为spy。这样做不会对您绑定到事件的函数产生任何影响,因为这仍然是原始函数。

    在实例化您的objManager 之前,您必须创建间谍来测试这一点。

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 2013-09-06
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      相关资源
      最近更新 更多