如何检查在单元测试中是否调用了jQuery链函数?

How can I check that a jQuery chainable functions was called in unit test

本文关键字:调用 是否 jQuery 函数 单元测试 何检查 检查      更新时间:2023-09-26

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

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

如何测试removeClass和addClass是否被调用并且具有正确的值。

正如您在这篇博文中看到的,这可以通过使用两个存根调用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);    
});