用于 node.js 的 BDD 和 TDD?

使用 node.js 的 BDD 和 TDD 使用什么?

我习惯于使用黄瓜 + RSpec。 node.js 的好组合是什么?

谢谢

25914 次浏览

更新

摩卡现在得到我的选票了!


您可以从 node.js 模块页面查看 测试模块部分。例如,誓言是一个非常流行的 BDD 框架。

Vows 是 Node.js 的行为驱动开发框架。

在 Node http://vowsjs.org上有一个 BDD 的“誓言”项目,看起来很不错。它和 RSpec/Cucumber 有点不同,但是很有趣

如果你习惯于 Rspec,茉莉是相当不错的。我没有在 Node.js 上使用它,但是我用它测试了一个主干应用程序。它的语法非常类似于 rspec。摘自以上网站:

describe("Jasmine", function() {
it("makes testing JavaScript awesome!", function() {
expect(yourCode).toBeLotsBetter();
});
});

它在上面 Alfred 提供的链接中列出,但是因为人们把 Vows 列为一个例子,我想我应该给 Jasmine 一个提示,特别是因为它在语法上类似于 rspec;)

也许晚一点,但你要找的是 Kyuri: https://github.com/nodejitsu/kyuri

”kyuri 是一个 node.js 黄瓜实现,带有一些额外的异步关键字。它支持160多种语言并导出到 VowsJS 存根”

此外,nodejitsu 似乎已经建立了一个网络应用程序,以协作的方式管理项目 Kyuri 功能规格,它的名称是“婚前协议”,我会给它一个看看。

看看 摩卡-(github)

还有 摩卡蛋糕,我在摩卡上尝试黄瓜语法。

看看 Buster JS,由克里斯蒂安 · 约翰森创作,他实际上是 关于 javascript 测试的书的作者。

Buster 同时支持 TDD 和 BDD。它使用浏览器自动化(想想 JsTestDriver)、 QUnit 风格的静态 HTML 页面测试、在无头浏览器(PhantomJS,jsdom)中进行测试,等等。

包装 a (bdd 和嘲笑) Https://npmjs.org/package/a

非常紧凑的语法,从行为中分离出来的上下文,可链接的行为。 简单的 Cmd 行运行器,递归搜索。

你也可以试试 等等。它可以插入其他的测试库,包括 mocha,jasmine,casper & webDriver,但是也可以让你编写正确的特性文件,而不仅仅是在原地注释你的测试。一个典型的测试可能看起来像..。

var Yadda = require('yadda');
Yadda.plugins.mocha();


feature('./features/bottles.feature', function(feature) {


var library = require('./bottles-library');
var yadda = new Yadda.Yadda(library);


scenarios(feature.scenarios, function(scenario, done) {
yadda.yadda(scenario.steps, done);
});
});

还有专题文件。

Feature: Mocha Asynchronous Example


Scenario: A bottle falls from the wall


Given 100 green bottles are standing on the wall
when 1 green bottle accidentally falls
then there are 99 green bottles standing on the wall

输出..。

Mocha Asynchronous Example
✓ A bottle falls from the wall


1 passing (12ms)

单元测试 : 摩卡非常适合单元测试。

BDD 测试 如果您想要一个用于 Node.js 的 BDD 测试框架,那么我建议使用 黄瓜包。

上个月我也经历过同样的担忧。

对于 BDD:

虽然摩卡本身提供了 BDD 风格的描述和它的陈述。

像黄瓜这样的风格,你可以试试:

  • 摩卡蛋糕
  • 摩卡小黄瓜
  • 黄瓜
  • Kyuri
  • 摩卡黄瓜

他们都有自己的风格。对不起,我现在不能提供工作片段,让我知道@Donald 你选择哪一个。想知道你的见解。

我也正在寻找一个好的小黄瓜实现,发现摩卡蛋糕/摩卡蛋糕 -2,这是不错的,但不是很全面的功能。因此,我建立了自己的摩卡作为基础,这与小黄瓜语言包括场景大纲的对等。它还可以方便地引用测试中的数据。它不同于黄瓜.js,因为它的所有内联文件不是独立的文件。你可以在这里找到这个项目:

Livedoc 摩卡