Gibt es derzeit gute Unit-Test-Frameworks für node.js (serverseitige js)? Ich suche etwas Tieferes als das bereitgestellte Assert-Modul.
Gibt es derzeit gute Unit-Test-Frameworks für node.js (serverseitige js)? Ich suche etwas Tieferes als das bereitgestellte Assert-Modul.
Antworten:
Am Ende habe ich Node-Unit verwendet und bin sehr zufrieden damit.
Ich habe ursprünglich Expresso verwendet, aber die Tatsache, dass es Tests parallel ausführt, verursachte einige Probleme. (Zum Beispiel funktioniert die Verwendung von Datenbank-Fixtures in dieser Situation nicht gut.)
.done()
imho aufrufen muss.
.done()
asynchrone Tests ermöglichen. Ich bin damit einverstanden, dass es manchmal etwas unhandlich sein kann, aber es hat einen guten Grund, es so zu machen.
Ich suchte auch nach einem anständigen Test-Framework für Node und fand Mocha . Es ist der offizielle Nachfolger von Expresso und scheint sehr ausgereift zu sein.
Es ermöglicht das Einstecken verschiedener Assertionsbibliotheken, bietet Reportern für die Codeabdeckung und andere Dinge (Sie können Ihre eigenen einstecken). Es kann synchron oder asynchron ausgeführt werden und verfügt über eine übersichtliche API.
Ich werde es versuchen und berichten ...
Nach unglaublich viel Zeit für andere Projekte kehrte ich schließlich zu einem Javascript-Projekt zurück und hatte Zeit, mit Mokka herumzuspielen. Ich kann es ernsthaft empfehlen. Die Tests lesen sich sehr gut, die Integration mit gulp ist großartig und die Tests laufen sehr schnell. In etwa einem halben Tag konnte ich sowohl automatische Standalone- als auch In-Browser-Testläufe (browserify) und entsprechende Berichte zur Codeabdeckung einrichten (die meiste Zeit wurde damit verbracht, die Verwendung von browserify von gulp aus zu verstehen). Mokka scheint mir eine sehr gute Wahl für ein Test-Framework zu sein.
Ich bin immer noch sehr überzeugt von Mokka. Durch die Integration mit Chai können verschiedene Assertionsstile eingebunden werden. Sie können ein funktionierendes Setup in diesem Github-Projekt auschecken . Ich verwende es jetzt mit Karma und integriere Code Coverage Report, automatische Beobachter und eine gute Integration mit IntelliJ
Ich persönlich habe nur das Assert-Modul verwendet, aber ich möchte auch mehr. Ich habe viele Knotenmodule durchgesehen und beliebte Unit-Testing-Frameworks sind Node-Unit und sollten (was wird von demselben Typ wie Expresso hergestellt (vielleicht ein aktualisierter Name?)
Gelübde sehen auch vielversprechend aus.
Persönlich bin ich bei Expresso geblieben , aber es gibt eine Reihe verschiedener Frameworks, die den meisten Teststilen gerecht werden.
Joyent hat eine umfangreiche Liste ; Probieren Sie es aus.
Gelübde ist eine solide Unit-Testing-Bibliothek für node.js, aber die Syntax ist langwierig.
Ich habe eine dünne Abstraktion geschrieben, die Gelübde fließend heißt fluent , die die API verkettbar macht.
Und ich habe eine andere Abstraktion geschrieben, [vows-is], die auf Gelübde-fließend aufbaut und eine Syntax im BDD-Stil enthüllt.
Ein Beispiel wäre
var is = require("vows-is");
is.suite("testing is fun").batch()
.context("is testing fun?")
.topic.is("yes")
.vow.it.should.equal("yes")
.suite().run({
reporter: is.reporter
});
Ich denke, unter den verschiedenen verfügbaren Test-Frameworks ist Mokka das neueste und sehr einfach zu implementierende. Hier ist ein wunderbares Tutorial zur Verwendung: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/
Wenn Sie mit QUnit vertraut sind , können Sie Node-Qunit verwenden , eine Art Node-Wrapper um das vorhandene Framework von QUnit.
Deadunit wurde ursprünglich für node.js entwickelt und ist eine Javascript-Unit-Testing-Bibliothek für node.js und den Browser. Einige seiner einzigartigen Eigenschaften:
count
Behauptung, die den Umgang mit erwarteten Ausnahmen und asynchronen Behauptungen erleichtertIch habe gerade ein Projekt hochgeladen, das ich verwende, um Nodejs mit Karma und Jasmine: Narma zu testen . Ihre Knotenmodule werden in einen Nodewebkit-Browser geladen, sodass Sie Knotenmodule ausführen und Bibliotheken wie jquery im selben Heap verwenden können.
Teststudio ist ein npm-Paket, das ein leistungsstarkes, webbasiertes Frontend für Unit-Tests bietet. Es unterstützt Dinge wie das Ausführen einzelner oder Gruppen von Tests und das Einführen von Node-Inspector in einzelne Tests. Derzeit werden Mokka unterstützt, und bei Bedarf werden in Zukunft weitere Frameworks unterstützt.
Lesen Sie hier mehr darüber .
Haftungsausschluss: Ich bin der Autor.