用于node.js的BDD和TDD是什么?
我习惯使用Cucumber + RSpec。 node.js有什么好的组合?
感谢
答案 0 :(得分:59)
<强>更新强>
Mocha立即投票!
您可以从node.js模块页面查看testing modules section。例如,Vows是一个非常流行的BDD框架。
Vows是Node.js的行为驱动开发框架。
答案 1 :(得分:18)
同样mocha-cakes,我在mocha上尝试使用Cucumber语法。
答案 2 :(得分:15)
如果你习惯了rspec,Jasmine非常好。我没有在Node.js上使用它,但我用它来测试骨干应用程序。它的语法与rspec非常相似。取自上面的网站:
describe("Jasmine", function() {
it("makes testing JavaScript awesome!", function() {
expect(yourCode).toBeLotsBetter();
});
});
它列在Alfred上面提供的链接中,但是由于人们以Vows为例,我认为我会给Jasmine带来一个冲击,特别是因为它在语法上类似于rspec;)
答案 3 :(得分:9)
节点http://vowsjs.org上有BDD的'誓言'项目,看起来很不错。它与RSpec / Cucumber略有不同,但它非常有趣
答案 4 :(得分:3)
也许过了一会儿,但你要找的是Kyuri:https://github.com/nodejitsu/kyuri
“kyuri是一个node.js Cucumber实现,带有一些额外的异步关键字。它支持160多种语言并导出到VowsJS存根”
此外,nodejitsu似乎已经构建了一个用于以协作方式管理项目Kyuri功能规范的Web应用程序,它被命名为“prenup”,我想看一看。
答案 5 :(得分:3)
您也可以尝试yadda。它插入其他测试库,包括mocha,jasmine,casper&amp; amp; 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)
答案 6 :(得分:2)
结帐Buster.JS。由克里斯蒂安约翰森创作,他真实地写了the book on javascript testing。
Buster同时支持TDD和BDD。它使用浏览器自动化进行浏览器测试(想想JsTestDriver),QUnit样式静态HTML页面测试,无头浏览器测试(PhantomJS,jsdom)等等。
答案 7 :(得分:1)
打包 a (bdd和嘲笑) https://npmjs.org/package/a
非常紧凑的语法,与行为分离的上下文,可链接的行为。 Easy Cmd line runner,可以递归搜索。
答案 8 :(得分:1)
答案 9 :(得分:0)
上个月我经历了同样的担忧。
对于BDD:
虽然Mocha本身通过他们的描述和声明来提供BDD风格。
对于黄瓜等风格,您可以尝试:
他们都有自己的风格。对不起,我现在无法提供工作片段,让我知道@Donald你选择哪一个。想了解您的见解。
答案 10 :(得分:0)
我也在寻找一个好的小黄瓜实现,发现mocha-cakes / mocha-cake-2很不错,但功能不是很全。所以我用mocha作为基础构建了自己的基础,它与小黄瓜语言相同,包括场景大纲。它还可以轻松引用测试中的数据。它与cucumber.js的不同之处在于它的所有内联都不是单独的文件。你可以在这里找到这个项目: