2013-04-17 94 views
0

我想编写的工作测试如下:QUnit链异步测试

  • 这个测试完成后启动异步测试
  • ,开始下一个异步测试
  • 做任意数量的测试

设置QUnit.config.reorderfalse不会阻止在前一个测试完成之前启动测试。

asyncTest('test1',function(){}); // all tests are started back on back 
asyncTest('test2',function(){}); // but I would like to start them 
asyncTest('test3',function(){}); // one after the other 

我知道测试应该是原子,但在这种情况下,这将导致一个巨大的考验,这本身就可能成为容易出错,所以我想它分裂。

现在我正在将每个测试打包到一个包装函数中,并在一次测试完成后调用这个函数,但是这在某种程度上很尴尬,并且想知道这种最佳实践是什么样的。

干杯!

+0

对此没有答案,但很想看看你的实现。 qunit源码虽然是开放的,所以也许你可以提交一个补丁。 – jakerella

+0

嗯,我遇到这个问题是因为我的脚本引入了全局的“私人”变量,所以每个测试都开始影响下一个的结果。链接测试可以预测它们的值,但测试不会再是原子了。我发现了一个解决方案来重置这些全局变量,在每次测试之前重新加载整个脚本,因此我使用了Qunit.testStart()方法。所以现在我在每个测试中都有原子测试和新近初始化的变量。 – philipp

回答

0

我发现了一个解决方案来重置这些全局变量,在每次测试之前重新加载整个脚本,因此我使用了Qunit.testStart()方法。所以现在我在每个测试中都有原子测试和新初始化的变量