Dojo测试框架:Dojo Objective Harness vs Intern

时间:2013-10-29 15:08:27

标签: javascript unit-testing dojo intern doh

我最近采用了Dojo Toolkit作为我的第一个JavaScript库,处于技术债务的门槛,我需要开始测试。我首先研究了Dojo Object Harness(DOH)单元测试框架,并通过查看dojo工具包源代码中的实践测试用例了解到最多:

 common/dojo/util/doh/tests
 common/dojo/dijit/tests

然而,即使有这些例子,我也无法解决我认为是DOH源代码中的错误的错误。这是我的错误:

1 tests to run in 1 groups
------------------------------------------------------------
GROUP "tests.testSomeDialog" has 1 test to run
    Error: test timeout in ../../../../net/js/tests/test_SomeDialog.html
    ERROR IN:
         function (){
                // FIXME: implement calling into the url's groups here!!
                return this.d;
            }
FAILED test: ../../../../net/js/tests/test_SomeDialog.html 15003 ms
WOOHOO!!
------------------------------------------------------------
| TEST SUMMARY:
------------------------------------------------------------
     1 tests in 1 groups
     1 errors
     0 failures

我无法解决此“测试超时”错误,因为教程[至少部分]已过时,社区似乎很小。问题1:是否有人遇到过“测试超时”错误?

我也看到SitePen最近改为新的测试框架,这可以解释我的很多问题:     http://www.sitepen.com/blog/2013/05/01/intern-javascript-testing/

2 个答案:

答案 0 :(得分:0)

要回答问题的第2部分,我们将其用于生产质量Web应用程序,并且几家大型企业也已在其应用程序测试中使用它。是的,它是新的,但它建立在已有技术的基础之上。

答案 1 :(得分:0)

我花了很多时间寻找这个问题的解决方案。让我分享我发现的事情,尽管这个问题有些陈旧。我无法在其他任何地方找到答案。

显然,这是一个轻微的忽视。在我的情况下,我有这样的事情:

    registerTests : function(){
        doh.register("dohTest", [
            function firstTest() {
                 doh.assertEqual("test", "test");
            }       
        ]);
        doh.run();
    }

然后在代码中没有任何地方调用registerTests()。 因此,如果您收到此错误,则很可能不会调用您测试的函数。