Was ist Mocha?
Mocha ist ein flexibles Open-Source-Testframework, welches JavaScript verwendet und zur Durchführung von automatisierten Tests in Node.js und Browsern verwendet wird. Es ist ein einfaches und funktionsreiches Testwerkzeug, welches eine umfangreiche und genaue Dokumentation der Testfälle erlaubt. Zu den wichtigsten Features gehören Cross-Browser-Support, Berichtserstellung, synchrones und asynchrones Testen, Definition der Test-Sammlungen sowie eine frei wählbare und austauschbare Assertion-Bibliothek. Mocha wird oft zusammen mit Assertion -Bibliothek Chai im Unit-Test Umfeld eingesetzt. Die Weiterentwicklung von Mocha erfolgt über die Open Source Repository in GitHub unter https://github.com/mochajs/mocha.
Funktion, Architektur und Einsatzfelder von Mocha
- Mocha zeichnet sich durch eine sehr klare Struktur bei der Definition von Tests aus: sie ermöglicht die Durchführung unterschiedlicher Arten von Testfällen innerhalb der Beschreibungsfunktion (describe). Sowohl synchrone als asynchrone Codes können mit ähnlicher Syntax getestet werden, ohne komplizierte Strukturen aufbauen zu müssen.
- Zusätzlich wird übersichtlich angezeigt, ob eine Funktion/Code die Tests bestanden hat oder nicht, indem fehlgeschlagene Befehle als „nicht bestanden“ bzw. funktionierende mit „bestanden“ markiert werden. Auch gibt Mocha Auskunft darüber, ob der Test zu lang ist und ob er ggf. in mehrere Tests aufgeteilt werden sollte. Die Testdurchführung erfolgt in einer geordneten Reihenfolge.
- Nachdem Mocha installiert wurde, können die Tests mit den gewünschten Funktionalitäten geschrieben werden und im Anschluss ausgeführt werden. Zur Überprüfung der Ergebnisse wird eine Assertion-Bibliothek benötigt, wie z.B. Chai, Expect.js oder Should.js. Mocha bietet außerdem unterschiedliche Interfaces zur Abbildung von Tests in verschiedenen Formaten an, darunter BDD, TDD, QUnit, Rquire und Exports.
- Das Open-Source Framework wird primär für Unit und Integrationstests verwendet.
Vor- und Nachteile von Mocha
Vorteile
- Mocha läuft direkt auf Node.js und in dem Browser, was das Testen sehr erleichtert
- Generatoren können in der Test-Suite eingefügt werden
- Der Wahl der Assertion-Bibliothek ist dem Tester frei überlassen. Dieses Tool wird häufig zusammen mit Chai eingesetzt.
- Tests können in Behavior Driven Development (BDD) oder Test Driven Development (TDD) Format erstellt. Somit können Sie sowohl qualitative hochwertige und sprechende Tests erstellen als auch diese gleichzeitig schreiben und ausführen.
- Mit Hilfe vom done Callback können in Mocha asynchrone Funktionen problemlos markiert und getestet werden.
- Hohe Customizierbarkeit (z.B. Einstellung von Farben für Reporting)
- Einfache Bedienung
- Code Coverage Reporting mit Wallaby.js möglich
Nachteile
- Für Anfänger gestaltet sich der Einstieg u.U. etwas schwieriger, da die Assertion-Bibliotheken eingerichtet werden müssen, was fortgeschrittene Technische-Skills erfordert
- Eine zufällige Reihenfolge bei der Testdurchführung wird in Mocha nicht unterstützt
Verwandte Produkte
- Jasmine
Verwandte Themen
- Node.js
- Chai
- Unit Tests
- Integration Tests
- Behavioral Driven Development (BDD)
- Test Driven Development (TDD)
- GitHub