我正在尝试使用mocha / sinonjs测试一个函数。我想测试的函数负责在我的DOM中显示或隐藏一些元素。
这是我的功能
var updateUI = function() {
$('#login').show();
$('#logout').hide();
};
我试图使用sinon进行模拟,但我不确定在这种情况下是否可行或正确的事情。
这是我尝试过但我在"TypeError: undefined is not a function"
电话
expect
var mockLogin = sinon.mock($);
mockLogin.withArgs('#login').expects("show").once();
我简单地想测试我的2个jquery调用已被调用。我试图使用间谍但继续获得例外
答案 0 :(得分:3)
进一步研究sinon doc,我发现以下内容对我有用。
var jQueryShow = sinon.stub($.fn, 'show');
var jQueryHide = sinon.stub($.fn, 'hide');
jQueryShow.callCount.should.be.equal(1);
jQueryShow.thisValues[0].selector.should.be.equal("#login");
jQueryHide.callCount.should.be.equal(1);
jQueryHide.thisValues[0].selector.should.be.equal("#logout");
我不确定是否有更简单的方法,但它会检查我需要的选择器