【发布时间】:2011-11-07 09:58:55
【问题描述】:
目前有没有好的 Node.js(服务器端 JavaScript)单元测试框架?
我正在寻找比提供的 Assert 模块更深入的东西。
【问题讨论】:
标签: javascript unit-testing node.js
目前有没有好的 Node.js(服务器端 JavaScript)单元测试框架?
我正在寻找比提供的 Assert 模块更深入的东西。
【问题讨论】:
标签: javascript unit-testing node.js
我刚刚上传了一个项目,用于对带有 Karma 和 Jasmine 的 Node.js 进行单元测试:Narma。
您的 Node.js 模块被加载到 node-webkit 浏览器中,因此您可以在同一个堆中执行 Node.js 模块并使用 jQuery 等库。
【讨论】:
最初是为 Node.js 制作的,deadunit 是一个用于 Node.js 和浏览器的 JavaScript 单元测试库。它的一些独特属性:
count 断言,可以轻松处理预期的异常和异步断言【讨论】:
我认为在各种可用的测试框架中,Mocha 是最新的,并且实现起来非常简单。这是一个关于如何使用它的精彩教程:
How to build and test your Rest API with Node.js, Express and Mocha
【讨论】:
我也在寻找一个不错的节点测试框架,并找到了Mocha。是Expresso的官方接班人,看起来很成熟。
它允许插入不同的断言库,它为代码覆盖率和其他事情提供报告器(您可以自己插入)。它可以同步或异步运行,并且具有简洁的 API。
我会试一试并报告...
在投入大量时间用于其他项目之后,我终于回到了一个 JavaScript 项目,并有时间玩 mocha。我可以认真推荐使用它。测试读起来非常好,与Gulp.js 的集成非常好,测试运行速度非常快。我能够在大约半天的时间内设置自动独立以及浏览器内 (Browserify) 测试运行和相应的代码覆盖率报告(大部分时间花在了解如何从 Gulp.js 使用 Browserify)。对我来说,Mocha 似乎是一个非常好的测试框架选择。
我对摩卡还是很有信心的。与Chai 集成允许插入不同的断言样式。您可以在this GitHub project 中查看工作设置。我现在将它与 karma 一起使用,集成了代码覆盖率报告、自动观察器以及与 IntelliJ IDEA 的良好集成。
【讨论】:
vows 是一个可靠的 Node.js 单元测试库,但语法很繁琐。
我编写了一个名为 vows-fluent 的精简抽象,它使 API 可链接。
我还编写了另一个抽象,[vows-is],它建立在 vows-fluent 之上,并公开了 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
});
【讨论】:
【讨论】:
.done() imho。
.done() 以适应异步测试。我同意它有时可能有点笨拙,但这样做有充分的理由。
test-studio 是一个 npm 包,它为单元测试提供了一个强大的、基于 Web 的前端。它支持诸如执行单个或一组测试以及将节点检查器步进到单个测试中之类的事情。它目前支持 mocha,未来会根据需求支持更多框架。
阅读更多关于它的信息here。
免责声明:我是作者。
【讨论】:
如果您熟悉QUnit,您可以使用node-qunit,它是一种围绕 QUnit 现有框架的节点包装器。
【讨论】:
我个人一直坚持使用 Expresso,但是那里有很多不同的框架,可以适应大多数测试风格。
Joyent 有an extensive list;试一试。
【讨论】: