我已经调研并考虑了许多JavaScript单元测试和测试工具,但无法找到一个能够完全符合TDD的合适选项。那么,是否有一个JavaScript单元测试工具能够完全符合TDD标准?
我已经调研并考虑了许多JavaScript单元测试和测试工具,但无法找到一个能够完全符合TDD的合适选项。那么,是否有一个JavaScript单元测试工具能够完全符合TDD标准?
Karma是一个基于Node.js构建的JavaScript测试运行器,用于单元测试。
Protractor用于端到端测试,使用Selenium Web Driver来驱动测试。
两者均由Angular团队制作。您可以在任一测试工具中使用所需的断言库。
演示视频:Karma入门
相关问题:
优点:
缺点:
我完全没有资格对mocha.js的功能、优势和弱点发表评论,但是在JS社区中我信任的某人向我推荐了它。
它的网站报告了以下功能:
这已经不存在了,现在重定向到sequential.js。
Yolpo是一种可视化JavaScript执行的工具。鼓励JavaScript API开发人员编写他们的用例来展示和介绍他们的API。这些用例构成回归测试的基础。
AVA是一款具有ES2015内置支持的未来主义测试运行器。虽然JavaScript是单线程的,但由于Node.js的异步性质,I/O可以并行进行。AVA利用这一点并发运行您的测试,这对于I/O密集型测试尤其有益。此外,将测试文件作为单独进程并行运行,为每个测试文件提供了更好的性能和隔离的环境。
refute(...)
而不是assert(!...)
或expect(...).not...
,我认为这是一个很好的转折。
浏览器JavaScript测试工具包。它使用浏览器自动化进行浏览器测试(类似于JsTestDriver),QUnit风格的静态HTML页面测试,在无头浏览器(PhantomJS,jsdom等)中进行测试等等。看看the overview!
Node.js测试工具包。您将获得相同的测试用例库,断言库等等。这对于混合浏览器和Node.js代码也非常有用。使用
Buster.JS
编写测试用例,并在Node.js和真实浏览器中运行它。
演示视频:Buster.js入门(2:45)
优点:
缺点:
* TestSwarm也是一个持续集成服务器,而你需要一个单独的CI服务器来运行Buster.js。然而,它可以输出xUnit XML报告,因此应该很容易与Hudson,Bamboo或其他CI服务器集成。
https://github.com/jquery/testswarm
根据他们的GitHub页面,TestSwarm已经正式停止了活跃开发。他们建议使用Karma、browserstack-runner或Intern。
如果您有使用该测试框架的经验,请贡献更多信息:)Jasmine是一个用于测试JavaScript代码的行为驱动开发框架。它不依赖于任何其他JavaScript框架。它不需要DOM。
QUnit与TestSwarm(上面)有一些历史渊源:QUnit是一个功能强大、易于使用的JavaScript单元测试套件。它被jQuery、jQuery UI和jQuery Mobile等项目使用,并能够测试任何通用的JavaScript代码。
JavaScript的独立测试间谍、存根和模拟程序。没有依赖项,可以与任何单元测试框架一起使用。
请查看他们的其中一次演讲:https://www.youtube.com/watch?v=cAKYQpTC7MA
更好的是:开始入门
请查看 Dojo Object Harness (DOH) 单元测试框架,它是一个独立于框架的 JavaScript 单元测试框架,并且没有任何 Dojo 依赖。在 使用 Dojo Objective Harness 进行 Web 2.0 应用程序单元测试 中对其进行了非常好的描述。
如果您想自动化 UI 测试(许多开发人员都感到头痛) - 请查看 doh.robot (暂时关闭,更新:其他链接 http://dojotoolkit.org/reference-guide/util/dohrobot.html) 和 dijit.robotx (暂时关闭)。后者专门用于验收测试。 更新:
引用的文章介绍了如何使用它们,如何模拟用户使用鼠标和/或键盘与您的 UI 交互,以及如何记录测试会话,使您可以以后自动“播放”它。
我创建了一个名为Chutzpah的开源项目,它是一个用于JavaScript单元测试的测试运行器。 Chutzpah使您能够从命令行和Visual Studio内部运行JavaScript单元测试。 它还支持在TeamCity持续集成服务器上运行。
还有一个来自Christian Johansen的BusterJS框架,他是《Test Driven Javascript Development》和Sinon框架的作者。从该网站上可以看到:
Buster.JS是一个新的JavaScript测试框架。它通过自动化在实际浏览器中运行测试(类似于JsTestDriver),以及Node.js测试来进行浏览器测试。
Google发布的JavaScript测试框架: https://github.com/google/gjstest
- 无需运行浏览器,测试启动和执行非常快。
- 在测试通过或失败时都有清晰易读的输出。
- 基于浏览器的测试运行器,只需在JS更改时刷新即可。
- 风格和语义类似于C++的Google Test。
- 内置模拟框架,需要最少的样板代码(例如没有
$tearDown
或$verifyAll
),其风格和语义基于Google C++ Mocking Framework。
目前没有Windows的二进制文件。
您可能也对 qooxdoo 感兴趣,它是一个开源的 RIA 框架,类似于 Dojo、ExtJS 等,但具有相当全面的工具链,其中包括单元测试框架。
请尝试使用 testrunner 的在线版本。提示:点击左上方的灰色箭头(应该更加明显)。这是一个“播放”按钮,可以运行所选的测试。
要了解更多关于 JS 类的信息,以便定义您的单元测试,请查看在线 API viewer。
对于基于 Selenium RC 的自动化 UI 测试,请查看 Simulator 项目。