【发布时间】:2011-06-10 00:18:30
【问题描述】:
node.js 的 BDD 和 TDD 使用什么?
我习惯使用 Cucumber + RSpec。 node.js 有什么好的组合?
谢谢
【问题讨论】:
标签: node.js rspec tdd cucumber bdd
node.js 的 BDD 和 TDD 使用什么?
我习惯使用 Cucumber + RSpec。 node.js 有什么好的组合?
谢谢
【问题讨论】:
标签: node.js rspec tdd cucumber bdd
更新
Mocha 立即获得我的投票!
您可以从 node.js 模块页面查看testing modules section。例如Vows 是一个非常流行的 BDD 框架。
Vows 是一个行为驱动的 Node.js 开发框架。
【讨论】:
bdd 接口非常接近 RSpec,但它仍然缺乏懒惰的 let/subject 细节。我为 mocha 创建了一个名为 lazy-bdd 的单独接口,其中包含以下添加:npmjs.com/package/mocha-lazy-bdd
还有 mocha-cakes,我在 mocha 上尝试 Cucumber 语法。
【讨论】:
如果你习惯了 rspec,Jasmine 非常好。我没有在 Node.js 上使用它,但我用它来测试骨干应用程序。它的语法与 rspec 非常相似。取自上述网站:
describe("Jasmine", function() {
it("makes testing JavaScript awesome!", function() {
expect(yourCode).toBeLotsBetter();
});
});
它在上面 Alfred 提供的链接中列出,但由于人们将 Vows 列为示例,我想我会给 Jasmine 一个改进,特别是因为它在语法上类似于 rspec ;)
【讨论】:
Node http://vowsjs.org 上有 BDD 的“Vows”项目,看起来很不错。和 RSpec/Cucumber 有点不同,但是挺好玩的
【讨论】:
也许稍晚一点,但你要找的是 Kyuri:https://github.com/nodejitsu/kyuri
“kyuri 是一个 node.js Cucumber 实现,带有一些额外的异步关键字。它支持 160 多种语言并导出到 VowsJS 存根”
另外,nodejitsu 似乎已经构建了一个 web 应用程序,用于以协作方式管理项目 Kyuri 功能规范,它被命名为“prenup”,我想看看。
【讨论】:
你也可以试试yadda。它可以插入其他测试库,包括 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)
【讨论】:
查看Buster.JS。由 Christian Johansen 创建,他的字面意思是 the book on javascript testing。
Buster 支持 TDD 和 BDD。它使用浏览器自动化进行浏览器测试(想想 JsTestDriver)、QUnit 风格的静态 HTML 页面测试、无头浏览器(PhantomJS、jsdom)中的测试等等。
【讨论】:
包装一个 (bdd 和嘲笑) https://npmjs.org/package/a
非常紧凑的语法,上下文与行为分离,可链接的行为。 递归搜索的简单 Cmd 行运行器。
【讨论】:
上个月我也遇到了同样的问题。
对于 BDD:
虽然 Mocha 本身通过其 describe 和 it 语句提供 BDD 风格。
对于像黄瓜这样的风格,你可以试试:
他们都有自己的风格。很抱歉我现在不能提供工作的 sn-ps,让我知道@Donald 你选择了哪一个。想知道你的见解。
【讨论】:
我也在寻找一个好的 Gherkin 实现,发现 mocha-cakes/mocha-cakes-2 很好,但功能不是很全。所以我以mocha为基础构建了我自己的,它与包括Scenario Outlines在内的小黄瓜语言相当。它还可以轻松引用测试中的数据。它与 cucumber.js 不同,因为它全部内联而不是单独的文件。您可以在这里找到该项目:
【讨论】: