Einführung in Node.js, Folge 12: Unit-Tests schreiben

the next big thing  –  3 Kommentare
Anzeige

Für das Erreichen einer hohen Codequalität sind Unit-Tests nahezu unverzichtbar. Zum Schreiben und Ausführen der Tests stehen verschiedene Frameworks zur Auswahl, unter anderem Mocha. Wie funktioniert es?

Unit-Tests kann man auf viele verschiedene Arten schreiben, zahlreiche unterschiedliche Stile konkurrieren miteinander. Das Framework Mocha, das den De-facto-Standard unter Node.js darstellt, legt sich daher nicht auf einen Weg fest. Stattdessen unterstützt es verschiedene Schreibweisen und ermöglicht das Einbinden verschiedener Assertion-Module, beispielsweise assertthat.

Anzeige

Wichtig ist zu Beginn zu verstehen, wie man Tests und Suites definiert. Praktisch in Mocha ist dabei vor allem, dass sich Tests auch ohne Implementierung definieren lassen, die dann mit dem Status Pending angezeigt werden.

Mit den Funktionen skip und only kann man die Anzahl der auszuführenden Tests bequem eingrenzen, wenn man beispielsweise einen einzelnen Test untersuchen will. Hinzu kommen die Funktionen setup, teardown, suiteSetup und suiteTeardown, die den Lebenszyklus der Tests begleiten.

Abgerundet wird Mocha durch die Möglichkeit, die Ausgabe je nach Bedarf zu formatieren. Zusätzlich zu der standardmäßig aktiven hierarchischen Anzeige gibt es zum Beispiel auch eine Listendarstellung oder eine Darstellung als HTML-Fragment.

Außerdem werden Formate wie TAP oder XUnit unterstützt, die die Integration mit einem Buildserver leicht machen. Im Gegensatz zu moderneren Frameworks wie Ava kann Mocha Tests zwar nicht parallelisiert ausführen, spätestens beim Einsatz für Integrations-Tests kann das allerdings schnell zum Vorteil werden.

Wie Mocha funktioniert und worauf es zu achten gilt, zeigt das folgende Video:

Einführung in Node.js, Folge 12: Unit-Tests schreiben

tl;dr: Mocha ist der de-facto-Standard für Test-Frameworks unter Node.js. Es lässt sich sehr flexibel an persönliche Bedürfnisse anpassen und unterstützt zahlreiche Ausgabeformate, was unter anderem die einfache Integration mit einem Buildserver ermöglicht.

Anzeige