Node.js单元测试

Mar*_*ark 163 javascript unit-testing node.js

目前有没有好的node.js(服务器端js)单元测试框架?我正在寻找比Assert模块更深入的东西.

evi*_*ery 65

我最终使用了node-unit,我真的很开心.

我最初使用的是Expresso,但它并行运行测试会导致一些问题.(例如,使用数据库夹具在这种情况下不能很好地工作).

  • Expresso不会强制您并行运行测试.给它加上--serial参数,它将以快活的顺序运行它们. (25认同)
  • 刚下载并使用了nodeunit ...就像它说的那样,第一次使用ftw! (3认同)
  • 如果我现在开始一个新项目,我可能会使用Mocha作为测试框架 (2认同)

ben*_*idi 46

我也在为节点寻找一个不错的测试框架,并找到了 Mocha.它是Expresso的官方继承者,看起来非常成熟.

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

我会试一试并报告......

编辑:

在花费了大量时间专注于其他项目后,我终于回到了Javascript项目,并有时间玩摩卡.我可以认真推荐使用它.测试读得非常好,与gulp的集成非常好,测试运行得非常快.我能够在大约半天内设置自动独立以及浏览器内(浏览器化)测试运行和相应的代码覆盖率报告(大部分时间用于理解如何从gulp使用browserify).对我来说,mocha似乎是测试框架的一个非常好的选择.

更新:

我仍然非常相信摩卡.与chai集成允许插入不同的断言样式.您可以在此github项目中签出工作设置.我现在正在使用业力,整合代码覆盖率报告,自动观察者以及与IntelliJ的良好集成


ein*_*ros 15

我个人一直坚持使用Expresso,但是有很多不同的框架,适应大多数测试风格.

Joyent拥有广泛的名单 ; 放手一搏.


小智 15

我个人只使用断言模块,但也发现自己想要更多.我查看了许多节点模块,流行的单元测试框架是node-unit and should(由Expresso制作的同一个人(可能是更新的名称?)

誓言看起来也很有希望.

  • 我只是为了那个双关语而赞美你. (15认同)

Ray*_*nos 5

vows是node.js的一个可靠的单元测试库,但语法很繁琐.

我写了一个名为vows-fluent的瘦抽象,它使API可链接.

我写了另一个抽象,[vows-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
});
Run Code Online (Sandbox Code Playgroud)

更多例子

  • 对此,誓言语法是可怕的IMO (6认同)