我研究并考虑了许多JavaScript单元测试和测试工具,但一直无法找到合适的选项来保持与TDD的完全兼容。那么,是否有一个完全符合TDD的JavaScript单元测试工具?
TDD的JavaScript单元测试工具
您可能还对单元测试框架感兴趣,该框架是qooxdoo的一部分,qooxdoo是类似于Dojo,ExtJS等的开源RIA框架,但具有相当全面的工具链。
尝试在线运行testrunner。提示:点击左上角的灰色箭头(应该更加明显)。这是一个运行选定测试的“播放”按钮。
要查找有关可用于定义单元测试的JS类的更多信息,请参见在线API查看器。
对于自动UI测试(基于Selenium RC),请签出Simulator项目。
作为专家,您可以“在实际的浏览器上运行”,但是根据我的经验,这是一个缺点,因为它运行缓慢。但是,使之具有价值的是非浏览器替代品缺乏足够的JS仿真。如果您的JS非常复杂,以至于仅在浏览器中进行测试就足够了,但是还可以考虑以下两个选项:
HtmlUnit:“它具有相当好的JavaScript支持(正在不断改进),并且即使在非常复杂的AJAX库中也可以使用,可以根据要使用的配置来模拟Firefox或Internet Explorer。” 如果其仿真足以供您使用,那么它将比驱动浏览器快得多。
但是,也许HtmlUnit具有足够好的JS支持,但是您不喜欢Java吗?然后也许:
Celerity:在由HtmlUnit支持的JRuby上运行的Watir API。
或类似
Schnell:HtmlUnit的另一个JRuby包装器。
当然,如果HtmlUnit不够好,并且您必须驱动浏览器,则可以考虑使用Watir来驱动JS。
google-js-test:
Google发布的JavaScript测试框架:https: //github.com/google/gjstest
- 非常快速的测试启动和执行时间,而无需运行浏览器。
- 在通过和未通过测试的情况下,输出均清晰,可读。
- 一个基于浏览器的测试运行时JS改变,可以简单地被刷新。
- 与Google Test for C ++ 类似的样式和语义。
- 一个内置的模拟框架,它需要最少的样板代码(例如no
$tearDown
或$verifyAll
),并具有基于Google C ++ Mocking Framework的样式和语义。
当前没有适用于Windows的二进制文件
巴斯特
还有测试驱动Javascript开发和Sinon框架的作者Christian Johansen的BusterJS。从站点:
Buster.JS是一个新的JavaScript测试框架。它通过自动化实际浏览器(例如JsTestDriver)中的测试运行以及Node.js测试来进行浏览器测试。
Wikipedia条目的JavaScript部分,单元测试框架列表,提供了可用选项的列表。它指示它们是在客户端,服务器端还是两者都起作用。
Chutzpah-JavaScript测试运行程序
我创建了一个名为Chutzpah的开源项目,该项目是JavaScript单元测试的测试运行器。Chutzpah使您能够从命令行和Visual Studio内部运行JavaScript单元测试。它还支持在TeamCity连续集成服务器中运行。
看一下Dojo对象线束(DOH)单元测试框架,它是JavaScript单元测试的几乎与框架无关的工具,并且没有任何Dojo依赖项。在使用Dojo Objective Harness对Web 2.0应用程序进行单元测试时,对此有很好的描述。
如果要自动化UI测试(许多开发人员的苦恼 ),请查看doh.robot (临时向下更新:其他链接http://dojotoolkit.org/reference-guide/util/dohrobot.html)和dijit .robotx (暂时关闭)。后者专为验收测试而设计。更新:
参考文章解释了如何使用它们,如何模拟用户使用鼠标和/或键盘与UI交互以及如何记录测试会话,以便您以后可以自动“播放”它。
MochiKit有一个名为SimpleTest的测试框架,似乎很流行。这是原始作者的博客文章。