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:
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;)
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ß
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.
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)
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.
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.
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:
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.
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:
bdd
Schnittstelle wird ziemlich nah an RSpec, aber es fehlt noch die faullet
/subject
Nettigkeiten. Ich habe eine separate Schnittstelle für Mokka erstelltlazy-bdd
, die diese Ergänzungen enthält: npmjs.com/package/mocha-lazy-bdd