BDD und TDD für node.js?


70

Was wird für BDD und TDD mit node.js verwendet?

Ich bin es gewohnt, Gurke + RSpec zu verwenden. Was ist eine gute Kombination für node.js?

Vielen Dank

Antworten:


59

Aktualisieren

Mokka bekommt jetzt meine Stimme!


Sie können einen Blick auf den Abschnitt Testmodule auf der Seite node.js-Module werfen . Zum Beispiel ist Vows ein ziemlich beliebtes BDD-Framework.

Vows ist ein verhaltensorientiertes Entwicklungsframework für Node.js.


Mocha der bddSchnittstelle wird ziemlich nah an RSpec, aber es fehlt noch die faul let/ subjectNettigkeiten. Ich habe eine separate Schnittstelle für Mokka erstellt lazy-bdd, die diese Ergänzungen enthält: npmjs.com/package/mocha-lazy-bdd
ghempton


15

Wenn Sie an rspec gewöhnt sind, ist Jasmine ziemlich nett. Ich habe es nicht auf Node.js verwendet, aber ich habe es zum Testen einer Backbone-App verwendet. Die Syntax ist der von rspec sehr ähnlich. Entnommen von der obigen Seite:

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

Es ist in dem Link aufgeführt, den Alfred oben bereitgestellt hat, aber da die Leute Gelübde als Beispiel aufgeführt haben, dachte ich, ich würde Jasmine eine Beule geben, zumal es syntaktisch ähnlich zu rspec ist;)


9

Es gibt das 'Vows'-Projekt für BDD auf Node http://vowsjs.org , sieht ziemlich gut aus. Es ist ein bisschen anders als RSpec / Cucumber, aber es macht ziemlich viel Spaß


3

Vielleicht etwas später, aber was Sie suchen, ist Kyuri: https://github.com/nodejitsu/kyuri

"kyuri ist eine Implementierung von node.js Cucumber mit einigen zusätzlichen asynchronen Schlüsselwörtern. Sie unterstützt mehr als 160 Sprachen und exportiert in VowsJS-Stubs."

Außerdem scheint Nodejitsu eine Web-App für die kollaborative Verwaltung der Kyuri-Funktionsspezifikationen eines Projekts erstellt zu haben. Sie heißt "prenup" und würde einen Blick darauf werfen.


3

Sie könnten auch Yadda versuchen . Es lässt sich in andere Testbibliotheken wie Mokka, Jasmin, Casper und Webdriver einbinden, ermöglicht es Ihnen jedoch auch, geeignete Feature-Dateien zu schreiben, anstatt Ihre Tests nur vor Ort mit Anmerkungen zu versehen. Ein typischer Test könnte aussehen wie ...

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);
   });
});

Und die Feature-Datei ...

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

Und Ausgabe ...

Mocha Asynchronous Example
✓ A bottle falls from the wall 

1 passing (12ms)

2

Schauen Sie sich Buster.JS an . Erstellt von Christian Johansen, der das Buch über Javascript-Tests buchstäblich geschrieben hat .

Buster unterstützt sowohl TDD als auch BDD . Es führt Browsertests mit Browser-Automatisierung (denken Sie an JsTestDriver), statische HTML-Seitentests im QUnit-Stil, Tests in kopflosen Browsern (PhantomJS, jsdom) und mehr durch.



1

Unit-Tests : Mokka eignet sich hervorragend für Unit-Tests.

BDD-Tests Wenn Sie ein BDD-Testframework für Node.js möchten, würde ich das Cucumber- Paket empfehlen .


0

Ich hatte letzten Monat die gleiche Sorge.

Für BDD:

Obwohl Mocha selbst durch ihre Beschreibung und seine Aussagen einen BDD-Stil bietet.

Für Stile wie Gurke können Sie versuchen:

  • Mokka-Kuchen
  • Mokka-Essiggurke
  • cucumber.js
  • Kyuri
  • Mokka-Gurke

Sie haben alle ihre eigenen Stile. Es tut mir leid, dass ich jetzt keine funktionierenden Schnipsel bereitstellen kann. Lassen Sie mich @Donald wissen, welches Sie auswählen. Würde gerne deine Einsicht wissen.


0

Auch ich suchte nach einer guten Gherkin-Implementierung und fand Mokka-Kuchen / Mokka-Kuchen-2, die nett, aber nicht sehr voll ausgestattet waren. Also baue ich meinen eigenen mit Mokka als Basis, der mit der Gurkensprache einschließlich der Szenariokonturen übereinstimmt. Es macht es auch einfach, die Daten in Ihrem Test zu referenzieren. Es unterscheidet sich von cucumber.js, da alle Inline-Dateien nicht getrennt sind. Das Projekt finden Sie hier:

Livedoc-Mokka

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.