我需要一点帮助来理解QUnit internas。 我不时阅读它的来源,但在异步测试方面,我仍在编写奇怪的测试。 我理解异步测试的概念,以及stop()和start()方法(以及为什么需要它们),但是当我将它们与setup和teardown结合起来时,我会遇到许多情况。
这是我的测试代码:
use(['Psc.Exception','Psc.Code'], function () {
module("async", {
setup: function () {
console.log('setup');
}, teardown: function () {
console.log('teardown');
}
});
asyncTest("test1", function () {
expect(0);
console.log('test1');
start();
});
asyncTest("test2", function () {
expect(0);
console.log('test2');
start();
});
asyncTest("test3", function () {
expect(0);
console.log('test3');
start();
});
asyncTest("test4", function () {
expect(0);
console.log('test4');
start();
});
asyncTest("test5", function () {
expect(0);
console.log('test5');
start();
});
});
尽管这些都是异步测试,我想我会在控制台中得到这样的东西:
setup
test1
teardown
setup
test2
teardown
setup
test3
teardown
...
因为我认为qunit会在测试车身周围调用设置和拆卸?
但是我把所有事情搞得一团糟,从请求到另一种方式请求改组。
setup
test1
teardown
setup
setup
setup
setup
test5
teardown
test4
teardown
test3
teardown
test2
teardown
有人能够一步一步地解释它吗?
答案 0 :(得分:6)
这是一个记录在案的问题:
http://api.qunitjs.com/QUnit.config/
在异步加载测试时,建议将QUnit.config.autostart设置为false。这是我的情况,因为“使用”是异步进行的。
头部看起来像这样:
QUnit.config.autostart = false;
use(['Psc.Exception','Psc.Code'], function () {
QUnit.start();
module("async", {
所以它基本上就像做stop()和start()但是用于加载测试本身。我测试了它,拆解/设置/测试现在按正确的顺序正确执行