Dojo 测试框架:Dojo Objective Harness vs Intern

Posted

技术标签:

【中文标题】Dojo 测试框架:Dojo Objective Harness vs Intern【英文标题】:Dojo Testing Frameworks: Dojo Objective Harness vs Intern 【发布时间】:2013-10-29 15:08:27 【问题描述】:

我最近采用了 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/

【问题讨论】:

您会编辑以包含您的测试模块代码吗? 测试超时通常是由编写不当的异步测试引起的,这些测试要么没有正确解决延迟问题,要么实际上在某些时候失败但没有正确注册失败。正如主教所说,我们真的需要查看测试模块代码才能对此发表评论。至于实习生,是的,它使用起来绝对足够稳定,并且在几乎所有方面都与 DOH 同等或更强(而且 IMO 通常在编写测试时不那么痛苦)。 【参考方案1】:

为了回答您问题的第 2 部分,我们在生产质量的 Web 应用程序中使用它,并且一些大型企业也已经在他们的应用程序测试中使用它。是的,它是新的,但它是建立在成熟技术之上的。

【讨论】:

【参考方案2】:

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

显然,这是一个小小的疏忽。就我而言,我有这样的事情:

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

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

【讨论】:

以上是关于Dojo 测试框架:Dojo Objective Harness vs Intern的主要内容,如果未能解决你的问题,请参考以下文章

类似于 dojo DOH 的 Javascript 测试框架

如何使用 doh 测试非 dojo javascript 代码?

使用 Dojo ID 进行 Selenium WebDriver 测试 [重复]

Dojo框架学习笔记<一>

如何在zend框架中为dojo动态树创建dojo数据onclick事件以实现程序化方法

Zend 框架中的 Dojo 对话框错误