Mocha für JavaScript (Node.js): Komplettleitfaden mit Beispielen
1. Was ist Mocha und wozu braucht man es?
Mocha ist ein leistungsstarkes, flexibles und weit verbreitetes Test-Framework für JavaScript, das in der Node.js-Umgebung und im Browser läuft. Es wurde 2011 vom Entwickler TJ Holowaychuk erstellt und hat sich seitdem zu einem De-facto-Standard für das Testen von JavaScript-Anwendungen entwickelt. Mocha bietet Entwicklern eine saubere, modulare und ausdrucksstarke API zum Schreiben von einfachen Unit-Tests bis hin zu komplexen Integrations- und asynchronen Testszenarien.
Das Hauptziel von Mocha ist es, den Testprozess so einfach und intuitiv wie möglich zu gestalten. Im Gegensatz zu einigen anderen Frameworks zwingt Mocha keine starre Teststruktur auf und enthält keine integrierte Assertion-Bibliothek. Stattdessen bietet es ein Gerüst (Framework) zur Organisation von Tests (describe/it/Hooks) und deren Ausführung mit verschiedenen Berichten (Reportern). Die Wahl der Bibliothek für die Überprüfung von Behauptungen bleibt dem Entwickler überlassen. Das macht Mocha extrem flexibel: Sie können es mit dem integrierten assert-Modul, der beliebten Chai-Bibliothek (die BDD/TDD-Stile bietet), Should.js oder jeder anderen Bibliothek verwenden.
Wozu braucht man Mocha? In der modernen Softwareentwicklung ist Testen kein Luxus, sondern eine Notwendigkeit. Mocha ermöglicht es, die Korrektheit von Code zu automatisieren, Regressionen nach Änderungen zu erkennen, das Verhalten von Funktionen und Modulen zu dokumentieren und die allgemeine Zuverlässigkeit und Stabilität der Anwendung zu erhöhen. Dank der Unterstützung für asynchrones Testen (Callbacks, Promises, async/await) und der Möglichkeit, mit verschiedenen Assertion-Bibliotheken zu arbeiten, ist Mocha ideal zum Testen von serverseitigen Node.js-Anwendungen, APIs, Datenbanken und allen anderen Komponenten.
2. Installation
Mocha wird über den Paketmanager npm (Node Package Manager) installiert. Es wird empfohlen, es als Entwicklungsabhängigkeit (devDependency) zu installieren, da Tests in der Produktionsumgebung nicht benötigt werden.
Der genaue Befehl zur Installation:
npm install --save-dev mocha
Nach der Installation können Sie Tests ausführen, indem Sie ein Skript in der package.json-Datei hinzufügen:
{
"scripts": {
"test": "mocha"
}
}
Jetzt können die Tests mit folgendem Befehl gestartet werden:
npm test
Für eine globale Installation (nicht empfohlen, aber möglich):
npm install -g mocha
3. Schnellstart – ein minimales funktionierendes Beispiel
Erstellen Sie eine Datei test.js mit folgendem Inhalt:
const assert = require('assert');
// Die zu testende Funktion
function add(a, b) {
return a + b;
}
// Test-Suite
describe('Funktion add', function() {
// Einzelner Test (Spec)
it('sollte die Summe zweier Zahlen zurückgeben', function() {
// Assertion
assert.strictEqual(add(2, 3), 5);
});
it('sollte mit negativen Zahlen funktionieren', function() {
assert.strictEqual(add(-1, -1), -2);
});
});
Starten Sie den Test:
npx mocha test.js
Sie sollten einen grünen Bericht sehen, der das Bestehen beider Tests anzeigt.
4. Wichtige Methoden/Funktionen/Klassen
Mocha stellt globale Funktionen bereit, die nicht importiert werden müssen (sofern sie nicht mit der Option --require deaktiviert wurden). Nachfolgend sind 8 wichtige Methoden mit Signaturen, Beschreibungen und Beispielen aufgeführt.
4.1 describe(name, fn)
Signatur: describe(name: string, fn: function): void
Funktion: Erstellt eine Test-Suite – eine Gruppe zusammengehöriger Tests. Wird zur logischen Organisation von Tests verwendet. Kann verschachtelt werden.
Auch in der Bibliothek
SMS-Versand mit Java: Überblick und Beispiele zur Nutzung von API-Bibliotheken (Twilio, Nexmo)
HTTP-Client für C# (.NET): Top-Bibliotheken für die Arbeit mit Webanfragen
React für JavaScript (Node.js): Vollständiger Leitfaden mit Beispielen
mimalloc für C++: Vollständige Anleitung mit Beispielen