提问人:donald 提问时间:1/16/2011 最后编辑:Dave Schweisguthdonald 更新时间:9/14/2017 访问量:26043
节点.js的BDD和TDD?
BDD and TDD for node.js?
答:
更新
摩卡现在得到我的投票!
您可以从 node.js 模块页面查看测试模块部分。例如,Vows 是一个非常流行的 BDD 框架。
Vows 是 Node.js 的行为驱动开发框架。
评论
bdd
let
subject
lazy-bdd
Node http://vowsjs.org 上有 BDD 的“Vows”项目,看起来很不错。它与RSpec/Cucumber有点不同,但很有趣
如果你习惯了 rspec,Jasmine 很不错。我没有在 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 Cucumber 实现,带有一些额外的异步关键字。它支持 160+ 种语言并导出到 VowsJS 存根”
此外,nodejitsu 似乎构建了一个 Web 应用程序,用于以协作方式管理项目 Kyuri 功能规范,它被命名为“婚前协议”,我会看一看。
还有摩卡蛋糕,我在摩卡上尝试黄瓜语法。
评论
查看 Buster.JS。由 Christian Johansen 创建,他写了一本关于 javascript 测试的书。
Buster 同时支持 TDD 和 BDD。它使用浏览器自动化(想想 JsTestDriver)、QUnit 风格的静态 HTML 页面测试、无头浏览器(PhantomJS、jsdom)等进行浏览器测试。
包 A (bdd 和 mocking) https://npmjs.org/package/a
非常紧凑的语法,上下文与行为分离,可链接的行为。 简单的 Cmd 行运行器,可递归搜索。
你也可以试试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)
单元测试:Mocha 非常适合单元测试。
BDD 测试如果你想要一个用于 Node.js 的 BDD 测试框架,那么我推荐 Cucumber 包。
上个月我遇到了同样的担忧。
对于BDD:
尽管 Mocha 本身通过其描述和 it 语句提供了 BDD 样式。
对于像黄瓜这样的款式,你可以试试:
- 摩卡蛋糕
- 摩卡小黄瓜
- Cucumber.js
- 久里
- 摩卡黄瓜
他们都有自己的风格。很抱歉我现在无法提供工作片段,请@Donald您选择哪一个。想知道你的见解。
我也在寻找一个好的 Gherkin 实现,找到了 mocha-cakes/mocha-cakes-2,它们很好,但功能不是很齐全。因此,我以摩卡为基础构建了自己的语言,它与小黄瓜语言(包括场景大纲)具有同等性。它还使在测试中引用数据变得容易。它与 cucumber.js 不同,因为它都是内联的,而不是单独的文件。您可以在此处找到该项目:
上一个:动态消息技术
评论