我试图为简单的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
然后我的测试页面进入无限循环。似乎第一次和最后一次测试都失败了。但是,删除第一个测试似乎无法解决问题。
我猜我的第三次测试有问题,但无法弄清楚它是什么。
答案 0 :(得分:0)
发现了什么问题。事实证明我的选择器$('input')
过于笼统:在Qunit的测试页面上至少有一个其他元素被该选择器捕获。
使用表单id
元素的input
代替工作。