Js 单元测试

目前有没有好的 Node.js (服务器端 JavaScript)单元测试框架?

我在寻找一些比提供的 Assert 模块更深入的东西。

86945 次浏览

就我个人而言,我一直坚持使用 浓咖啡,但是现在有很多不同的框架,可以适应大多数测试风格。

Joyent 拿到 详尽的清单了,试试看。

我个人只使用过断言模块,但是我发现自己还需要更多。我已经浏览了许多 Node.js 模块,流行的单元测试框架是 节点和 should (它和 Espresso 是由同一个人制作的(也许是一个更新的名称?)

誓言看起来也很有希望。

我最终使用了 节点,并且非常满意。

我最初使用的是 浓咖啡,但是它并行运行测试的事实造成了一些问题。(例如,在这种情况下,使用数据库 fixture 不能很好地工作。)

誓言 是 Node.js 的一个可靠的单元测试库,但是语法很单调。

我已经编写了一个名为 誓言,流利的瘦抽象,它使 API 具有可链接性。

我还写了另一个抽象,[誓言-is ] ,它建立在誓言-流畅的基础上,并公开了一个 BDD风格的语法。

举个例子

var is = require("vows-is");


is.suite("testing is fun").batch()


.context("is testing fun?")
.topic.is("yes")
.vow.it.should.equal("yes")


.suite().run({
reporter: is.reporter
});

更多例子。

如果您熟悉 QUnit,您可以使用 Node-qunit,它是 QUnit 现有框架的一种节点包装器。

我还在为 node 寻找一个像样的测试框架,找到了 摩卡。它是 浓咖啡的正式继承者,看起来非常成熟。

它允许插入不同的断言库,它为代码覆盖率和其他事情提供记者(您可以插入自己的)。它可以同步或异步运行,它有一个简洁的 API。

我会试一下,然后回来报告..。

编辑:

在花了大量时间致力于其他项目之后,我终于回到了一个 JavaScript 项目,并且有时间玩摩卡咖啡。我可以认真推荐使用它。测试读起来非常好,与 Gulp.js的集成非常好,测试运行非常快。我能够设置自动独立和在浏览器内(浏览器化)测试运行和相应的代码覆盖率报告在大约半天(大部分时间花在了解如何使用 Gulp.js 的 Browserify)。对我来说,Mocha 似乎是测试框架的一个非常好的选择。

更新:

我对摩卡还是很有信心的。与 阿漆的集成允许插入不同的断言样式。您可以在 这个 GitHub 项目中签出一个工作设置。我现在使用它与业力,集成代码覆盖率报告,自动监视器和良好的集成与 IntelliJ IDEA

我认为在各种可用的测试框架中,摩卡是最新的,并且实现非常简单。下面是一个关于如何使用它的教程:

如何使用 Node.js、 Express 和 Mocha 构建和测试 RestAPI

死亡单位最初是为 Node.js 设计的,是一个用于 Node.js 和浏览器的 JavaScript 单元测试库。它的一些独特特征:

  • 简单的学习曲线
  • 可以在命令行(彩色或纯文本)或 HTML 中输出测试结果
  • 它打印出断言所在的实际代码行,因此即使您没有花很多时间编写测试注释,您的输出也是有意义的
  • 它有一个简单的 count断言,使得处理预期的异常和异步断言变得容易
  • 它打印出异常 还有任何附加的数据,他们有
  • 它会让你知道你的代码是否挂起(一些你不想要的东西,但通常不会被注意到)
  • 具有事件驱动 API,可以通过网络或以任何您想要的方式实现测试结果流。
  • 支持使用 节点纤维进行测试

Test-Studio 是一个 npm 包,它为单元测试提供了一个强大的、基于 Web 的前端。它支持执行单个或多个测试组,以及将节点检查器加入到单个测试中。它目前支持摩卡和更多的框架将支持在未来的需求。

阅读更多有关它 给你

免责声明: 我是作者。

我刚刚上传了一个用 Karma 和 Jasmine: 娜玛对 Node.js 进行单元测试的项目。

将 Node.js 模块加载到 Node-webkit浏览器中,这样就可以在同一堆中执行 Node.js 模块并使用 jQuery 等库。