QUnit异步测试与设置和拆解

时间:2012-06-14 15:34:31

标签: asynchronous installation qunit teardown

我需要一点帮助来理解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

有人能够一步一步地解释它吗?

1 个答案:

答案 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()但是用于加载测试本身。我测试了它,拆解/设置/测试现在按正确的顺序正确执行