使用QUnit的非阻塞异步测试

时间:2011-12-08 12:39:13

标签: javascript qunit

似乎QUnit函数stop()start()允许等待进行异步测试,但在等待期间整个测试套件都会挂起。有没有办法使用QUnit以非阻塞方式运行异步测试?

1 个答案:

答案 0 :(得分:8)

查看asyncTeststop的文档,我有两个原因可以看出它的设置是这样的。

  1. 这样你就不会意外地同时运行两个可能与某些东西冲突的测试(即修改DOM,从而改变彼此的测试结果)。
  2. 因此,QUnit知道测试何时结束。如果它涉及到所有同步测试的结束,那么它会写出结果,如果在后台仍然发生异步测试,那么你真的不想这样做。
  3. 所以这些都是好事,你可能实际上并不希望异步测试在运行时不会阻塞。您可以通过在异步测试开始后立即调用start来实现,但请记住,JavaScript实际上是单线程的(即使它有时会出现多线程),因此这可能会导致意外结果,因为你不能保证你的异步测试何时会继续运行...它可能不会(可能不会)在其他测试完成并且结果发布之后。

相关问题