setup
モジュール レベルとteardown
メソッドを使用する一連の QUnit テストを実行しています。start()
これらが呼び出されると、テスト内で使用すると混乱するように見えることに気付きましたstop()
。これにより、セットアップで使用できる特定のアイテムが、実行される一部のテストで使用できないため、問題が発生します。
編集:これは、テストスクリプトをプログラムでロードしたときにのみ発生することに気付きました(スクリプトローダー: LABjsを使用しています)。それに応じて、この質問の件名と内容を変更しました。次のようなテストをロードしています:
$LAB.script('/static/tests.js')
なぜこれが起こるのかはまだわかりません。
これが私のテストモジュールのサンプルです:
module('Class Foo', {
setup: function() {
console.log('setup called');
},
teardown: function() {
console.log('teardown called');
}
});
test('Test1', function() {
stop();
console.log('test1');
ok(true);
start();
});
test('Test2', function() {
stop();
console.log('test2');
ok(true);
start();
});
test('Test3', function() {
stop();
console.log('test3');
ok(true);
start();
});
これにより、コンソール出力が生成されます (setup は 2 回呼び出され、その後は呼び出されないことに注意してください)。
setup called
test1
teardown called
(2)setup called
test3
teardown called
test2
teardown called
開始/停止を削除するか、プログラムで読み込まれないようにテスト ファイルを変更します (つまり、従来のタグを使用します)。
test('Test3', function() {
console.log('test3');
ok(true);
});
より期待される実行順序が得られます。
setup called
test1
teardown called
setup called
test2
teardown called
setup called
test3
teardown called
これがどのように機能するべきかについて何か誤解していますか?