BDD和TDD为node.js?

什么是用于BDD和TDD与node.js?

我习惯使用Cucumber + RSpec。 什么是node.js的一个很好的组合?

谢谢

更新

摩卡现在得到我的投票!


您可以查看node.js模块页面中的testing模块部分 。 例如誓言是一个非常受欢迎的BDD框架。

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

看看摩卡 – (github)

摩卡咖啡 ,我尝试在摩卡咖啡的黄瓜语法。

如果你习惯rspec, Jasmine是相当不错的。 我没有用Node.js,但是我用它来testing骨干应用程序。 它的语法和rspec非常相似。 从上面的网站采取:

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

它被列在上面的Alfred提供的链接中,但是由于人们列举了誓言作为一个例子,我想我会给茉莉花一个凹凸,特别是因为它在语法上类似于rspec;)

在Node http://vowsjs.org上有用于BDD的“Vows”项目,看起来相当不错。; 这与RSpec /黄瓜有些不同,但是非常有趣

也许稍后,但你要找的是Kyuri: https : //github.com/nodejitsu/kyuri

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

此外,nodejitsu似乎已经build立了一个web应用程序,以协作的方式pipe理项目Kyurifunction规格,它被命名为“prenup”,我会给它一个看看。

你也可以尝试YADDA 。 它插入到其他testing库,包括摩卡,茉莉,casper&webdriver,但也可以让你写适当的function文件,而不是仅仅注释你的原位testing。 一个典型的testing可能看起来像…

 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); }); }); 

和function文件…

 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) 

看看Buster.JS 。 由Christian Johansen创build,他在字面上写了关于javascripttesting的书 。

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

打包(bdd和嘲笑) https://npmjs.org/package/a

非常紧凑的语法,与行为分离的上下文,可链接的行为。 简单的命令行转轮searchrecursion。

unit testing : 摩卡是伟大的unit testing。

BDDtesting如果你想要一个Node.js的BDDtesting框架,那么我build议使用Cucumber包。

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

对于BDD:

虽然摩卡本身通过描述和陈述来提供BDD风格。

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

  • 摩卡蛋糕
  • 摩卡小黄瓜
  • cucumber.js
  • kyuri
  • 摩卡黄瓜

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

我也在寻找一个好的黄瓜实施,发现了很好但不是很全面的摩卡蛋糕/摩卡蛋糕2。 所以我build立了自己的摩卡作为基础,它与包括情景大纲在内的黄瓜语言是平等的。 这也使得在testing中引用数据变得很容易。 它不同于cucumber.js作为它的所有内联而不是单独的文件。 你可以在这里find这个项目:

livedoc,摩卡