【问题标题】:BDD and TDD for node.js?node.js 的 BDD 和 TDD?
【发布时间】:2011-06-10 00:18:30
【问题描述】:

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

我习惯使用 Cucumber + RSpec。 node.js 有什么好的组合?

谢谢

【问题讨论】:

    标签: node.js rspec tdd cucumber bdd


    【解决方案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

                    【讨论】:

                      猜你喜欢
                      • 2011-05-22
                      • 1970-01-01
                      • 2012-07-31
                      • 1970-01-01
                      • 2016-02-18
                      • 2015-09-28
                      • 1970-01-01
                      • 2011-03-15
                      • 1970-01-01
                      相关资源
                      最近更新 更多