Я новичок в QUnit и пытаюсь понять, как #qunit-fixtures
восстанавливаются. Насколько я понимаю, все в этом элементе сбрасывается перед запуском нового теста. Однако я вижу (что для меня) что-то странное. В приведенном ниже примере в приборе есть form
, который состоит только из элемента input
и div
с классом has-error
. Насколько я понимаю, перед запуском каждого теста они должны быть восстановлены в исходное состояние. Я указал обработчик события keypress
для $('input')
, чтобы просто скрыть div
в приборе.
У меня есть два теста, которые делают одно и то же: вызывают 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 воздействует на фикстуру, поскольку это фикстура, если первый тест выполняется $('#qunit-fixture').find('.has-error').hide();
, не следует ли отменить это действие до запуска второго теста?
$('#qunit-fixture')
. Если приспособление не предназначено для прикосновения, для чего именно оно предназначено? - person VMrx   schedule 27.05.2015