不是每次都恢复QUnit装置
QUnit fixtures not being restored every time
我是QUnit的新手,我想弄清楚#qunit-fixtures
是如何恢复的。据我所知,在运行新测试之前,该元素中的所有内容都将被重置。然而,我看到了(对我来说)一些奇怪的东西。在下面的例子中,夹具中有一个form
,它仅由一个input
元素和一个has-error
类的div
组成。因此,据我所知,在运行每个测试之前,这些都应该恢复到原始状态。我已经为$('input')
指定了一个keypress
事件处理程序,以便将div
隐藏在fixture中。
我有两个测试做完全相同的事情:在输入上触发keypress
并断言错误文本是隐藏的。
我看到的是只有一个第一个通过了。有人能给我解释一下这种行为吗?
<html>
<head>
<link rel="stylesheet" href="qunit-1.18.0.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture">
<form>
<input name="text" />
<div class="has-error">Error text</div>
</form>
</div>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script src="qunit-1.18.0.js"></script>
<script>
QUnit.config.reorder = false;
QUnit.test( "test 1", function ( assert ) {
$('#qunit-fixture').find('input').trigger('keypress');
assert.equal($('#qunit-fixture').find('.has-error').is(':visible'), false);
});
QUnit.test( "test 2", function ( assert ) {
$('#qunit-fixture').find('input').trigger('keypress');
assert.equal($('#qunit-fixture').find('.has-error').is(':visible'), false);
});
$(document).ready(function () {
$('#qunit-fixture').find('input').keypress(function() {
$('#qunit-fixture').find('.has-error').hide();
});
});
</script>
</body>
</html>
测试的目的是测试keypress
事件。不管什么QUnit代码作用于fixture,因为它是一个fixture,如果第一个测试运行$('#qunit-fixture').find('.has-error').hide();
,不应该在第二个测试运行之前撤消它吗?
我认为QUnit在运行每个测试之前删除了您在fixture中添加的元素。因此,在document ready上添加的"keypress"事件处理程序在第二次测试开始时被删除。如果您在每个测试的开始处添加事件处理程序,或者像这样在文档上添加事件处理程序,则可以工作:
$("body").on("keypress","input",function( event ) {
$('.has-error').hide();
});
QUnit可能不会在第一次测试时删除它,这解释了为什么它第一次工作。
相关文章:
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 如何临时暂停浏览器渲染,然后恢复整个页面
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 我希望在不替换现有变量的情况下恢复localStorage中的变量
- 克隆和恢复”;工具化的“;元素
- 如何暂停和恢复jquery间隔
- 如何为requirejs和qunit设置grunt任务
- 在python中,我如何才能恢复被隐藏的元素的内容
- 是否有任何开源web应用程序具有良好的QUnit(或JSUnit)测试用例
- javascript恢复样式
- 在意外断电时恢复JS计时器
- 将JSON存储和恢复到此Ionic应用程序的最有效方法
- 在文本区域禁用javascript定义的keydown事件并恢复默认行为
- 将嵌套的主干模型存储并恢复到本地存储中
- 当客户端在JW Player中恢复丢失的连接时,会自动重新连接
- 从jquery对话框恢复原始数据,脚本不起作用
- 如何恢复Kinetic.js鼠标事件
- 如何使用 QUnit 测试 JavaScript 错误恢复
- 不是每次都恢复QUnit装置