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

Donald
quelle

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.

Alfred
quelle
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
18

Schauen Sie sich Mokka - (Github)

Auch Mokka-Kuchen , mein Versuch für Gurkensyntax auf Mokka.

Quang Van
quelle
1
Warum sollte ich jetzt Gurkensyntax mit Mokka verwenden ?
Hellboy
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;)

Craig Monson
quelle
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ß

Nikolay
quelle
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.

Benja
quelle
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)
cressie176
quelle
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.

Tauren
quelle
1

Paket a (bdd und spöttisch) https://npmjs.org/package/a

Sehr kompakte Syntax, von Handlungen getrennter Kontext, verkettbare Handlungen. Einfacher Cmd-Linienläufer, der rekursiv sucht.

Lars-Erik Roald
quelle
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 .

Thomas Bratt
quelle
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.

user3251882
quelle
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

dnp
quelle