【问题标题】:How can I check that a jQuery chainable functions was called in unit test如何检查在单元测试中是否调用了 jQuery 可链接函数
【发布时间】:2017-03-13 23:04:11
【问题描述】:

如何检查 jQuery 可链接函数在单元测试中是否被调用。例如下面的代码

function myFunction() {
    var elem = $('#id').removeClass('someClass').addClass('anotherClass');
    return elem;
}

如何测试 removeClass 和 addClass 是否被调用并具有正确的值。我正在使用 sinon 存根,但收到错误消息。

【问题讨论】:

标签: javascript jquery unit-testing mocha.js sinon


【解决方案1】:

正如您在 blog post 中看到的,这可以通过使用两个存根调用 if returns 属性来实现。

在这种情况下

function myFunction() {
    var elem = $('#id').removeClass('someClass').addClass('anotherClass');
    return elem;
}

在这个测试场景中

it('your test case', function(done) {
    var jQueryFunctions = {
        addClass: function(params) {
            assert.equals(params, 'your assertion');
        },
        removeClass: function() {}
    };

    sinon.stub(jQueryFunctions, 'addClass').returns(jQueryFunctions);
    sinon.stub(jQueryFunctions, 'addClass').returns(jQueryFunctions);

    sinon.stub(window, '$').returns(jQueryFunctions);    
});

它非常简单和容易。

【讨论】:

    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多