【发布时间】:2015-10-28 06:04:29
【问题描述】:
我正在尝试为一个简单的jQuery 函数编写一些qunit 测试。我正在测试的函数选择一个元素input,并向它添加一个侦听器(单击和按键时)。监听器隐藏了另一个元素,.has-error:
$('input').on('keypress click', function () {
$('.has-error').hide();
});
我从两个测试开始:一个检查.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);
});
效果很好,我的测试通过了。当我尝试添加第三个测试时,问题就开始了,以检查单击 input 元素后 .has-error 是否隐藏:
test("errors should be hidden on click", function () {
$('input').trigger('click');
equal($('.has-error').is(':visible'), false);
});
然后我的测试页面进入无限循环。似乎第一个和最后一个测试都失败了。但是,删除第一个测试似乎并不能解决问题。
我猜我的第三次测试有问题,但不知道是什么问题。
【问题讨论】:
标签: javascript jquery unit-testing qunit