Answers:
.done()
imho 有点奇怪。
.done()
适应异步测试。我同意有时可能有些笨拙,但是这样做有充分的理由。
我也在寻找一个不错的node测试框架,并找到了 Mocha。它是Expresso的正式继任者,看起来非常成熟。
它允许插入不同的断言库,它为报告程序提供代码覆盖范围和其他内容(您可以自己插入)。它可以运行同步或异步,并且具有简洁的API。
我会尝试并回报...
经过大量的时间专门用于其他项目之后,我终于回到了Javascript项目,并有时间玩摩卡游戏。我可以认真推荐使用它。这些测试的读法非常好,与gulp集成非常好,并且测试运行非常快。我能够在大约半天的时间内设置自动独立运行以及浏览器内(browserify)测试运行和相应的代码覆盖率报告(大部分时间用于了解如何从gulp中使用browserify)。对我而言,mocha似乎是测试框架的绝佳选择。
我仍然对Mocha充满信心。与chai集成允许插入不同的断言样式。您可以在此github项目中签出有效的设置。我现在将其与业力一起使用,集成了代码覆盖率报告,自动监视程序以及与IntelliJ的良好集成
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
});
如果您熟悉QUnit,则可以使用node-qunit,它是QUnit现有框架的一种节点包装。
我刚刚上传了一个项目,用于使用karma和Jasmine:narma对nodejs进行单元测试。您的节点模块将加载到nodewebkit浏览器中,因此您可以在同一堆中执行节点模块并使用jquery之类的库。
test-studio是一个npm软件包,它提供了功能强大的基于Web的前端用于单元测试。它支持诸如执行单个或一组测试以及将节点检查器逐步引入单个测试之类的事情。它目前支持摩卡(mocha),未来将根据需求支持更多框架。
在此处了解更多信息。
免责声明:我是作者。