Qunit单击触发器测试会导致无限刷新循环

时间:2015-10-28 06:04:29

标签: javascript jquery unit-testing qunit

我试图为简单的qunit函数编写一些jQuery测试。我测试的函数选择一个元素input,并为其添加一个监听器(在点击和按下时)。监听器隐藏了另一个元素.has-error

$('input').on('keypress click', function () {
    $('.has-error').hide();
});

我从两个测试开始:一个检查{i}在按键后是不可见的,另一个检查.has-error是否可见如果没有发生:

.has-error

工作正常,我的测试通过了。当我尝试添加第三个测试时,问题就会出现,以便在点击test("errors should be hidden on keypress", function () { $('input').trigger('keypress'); equal($('.has-error').is(':visible'), false); }); test("errors not be hidden unless there is a keypress or a click", function() { equal($('.has-error').is(':visible'), true); }); 元素后检查.has-error是否隐藏:

input

然后我的测试页面进入无限循环。似乎第一次和最后一次测试都失败了。但是,删除第一个测试似乎无法解决问题。

我猜我的第三次测试有问题,但无法弄清楚它是什么。

1 个答案:

答案 0 :(得分:0)

发现了什么问题。事实证明我的选择器$('input')过于笼统:在Qunit的测试页面上至少有一个其他元素被该选择器捕获。

使用表单id元素的input代替工作。