Модули с групповыми тестовыми функциями используются для определения вложенных модулей. QUnit запускает тесты родительского модуля, прежде чем углубляться в вложенные, даже если они объявлены первыми. В beforeEach
и afterEach
обратных вызовы на вложенном вызов модуля сложат в LIFO (Last In, First Out) Режим материнских крючков. Вы можете указать код для запуска до и после каждого теста с использованием аргументов и перехватов.
Крюки также могут использоваться для создания свойств, которые будут использоваться в контексте каждого теста. Любые дополнительные свойства объекта hooks будут добавлены в этот контекст. Аргумент hooks необязателен, если вы вызываете QUnit.module с аргументом обратного вызова.
Обратный вызов модуля вызван тем, что контекст является тестовой средой, а свойства среды скопированы на тесты модуля, крючки и вложенные модули.
<html>
<head>
<meta charset = "utf-8">
<title>QUnit basic example</title>
<link rel = "stylesheet" href = "https://code.jquery.com/qunit/qunit-1.22.0.css">
<script src = "https://code.jquery.com/qunit/qunit-1.22.0.js"></script>
</head>
<body>
<div id = "qunit"></div>
<div id = "qunit-fixture"></div>
<script>
QUnit.module( "parent module", function( hooks ) {
hooks.beforeEach( function( assert ) {
assert.ok( true, "beforeEach called" );
});
hooks.afterEach( function( assert ) {
assert.ok( true, "afterEach called" );
});
QUnit.test( "hook test 1", function( assert ) {
assert.expect( 2 );
});
QUnit.module( "nested hook module", function( hooks ) {
// This will run after the parent module's beforeEach hook
hooks.beforeEach( function( assert ) {
assert.ok( true, "nested beforeEach called" );
});
// This will run before the parent module's afterEach
hooks.afterEach( function( assert ) {
assert.ok( true, "nested afterEach called" );
});
QUnit.test( "hook test 2", function( assert ) {
assert.expect( 4 );
});
});
});
</script>
<div id = "console" ></div>
</body>
</html>
0 комментариев