Node.js的BDD和TDD?


70

使用node.js的BDD和TDD使用什么?

我曾经使用Cucumber + RSpec。node.js的最佳组合是什么?

谢谢

Answers:




15

如果您习惯使用rspec,Jasmine非常不错。我没有在Node.js上使用它,但已将其用于测试主干应用程序。它的语法与rspec非常相似。取自上面的网站:

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

它在上面的Alfred提供的链接中列出,但是由于人们以Vows为例,所以我认为我会给Jasmine一个麻烦,特别是因为它在语法上类似于rspec;)



3

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

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

另外,nodejitsu似乎已经构建了一个Web应用程序,用于以协作方式管理Kyuri项目的功能规格,它的名称为“ prenup”,下面我来看一下。


3

您也可以尝试yadda。它可以插入到其他测试库中,包括mocha,茉莉,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)

2

看看Buster.JS。由克里斯蒂安·约翰森(Christian Johansen)创建,他从字面上撰写了有关javascript测试的书

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




0

我上个月正经历着同样的担忧。

对于BDD:

尽管Mocha本身通过他们的describe和it语句提供了BDD样式。

对于像黄瓜这样的样式,您可以尝试:

  • 摩卡蛋糕
  • 摩卡格金
  • 黄瓜
  • 丘里
  • 摩卡黄瓜

他们都有自己的风格。抱歉,我现在无法提供工作片段,请让我知道@Donald,您选择了哪一个。想知道您的见解。


0

我也一直在寻找一个好的Gherkin实现,发现mocha-cakes / mocha-cakes-2不错,但功能不是很全。因此,我以摩卡咖啡为基础构建自己的产品,该产品与包括“方案纲要”在内的小黄瓜语言同等。它还使引用测试中的数据变得容易。它与Cucumber.js不同,因为其所有内联而不是单独的文件。您可以在这里找到项目:

livedoc摩卡

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.