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