Einstieg in Unit-Tests mit JavaScript, Jasmine und Karma

Veröffentlicht von Rhein-Ruhr-Informatik am

Erfahren Sie, wie Sie zuverlässige JavaScript-Anwendungen durch Unit-Tests erstellen! In diesem praxisnahen Tutorial richten Sie Jasmine und Karma Schritt für Schritt ein, schreiben aussagekräftige Tests und automatisieren deren Ausführung. Ob Sie neu im Testen sind oder Ihre Fähigkeiten vertiefen möchten – diese Anleitung vermittelt grundlegende Praktiken für sauberen, wartbaren Code. Verwandeln Sie unübersichtlichen Code in vertrauenswürdige Lösungen!

1. Voraussetzungen

  • Node.js und npm installiert
  • Code-Editor Ihrer Wahl

2. Abhängigkeiten installieren

Dieser Schritt richtet die Testumgebung ein. Jasmine liefert die Test-Syntax und Assertion-Funktionen, während Karma als Test-Runner dient, der Tests in echten Browsern ausführt. Der Chrome-Launcher ermöglicht Tests in einer vertrauten Browserumgebung.

3. Karma konfigurieren

Der Karma-Konfigurationsassistent hilft bei der Erstellung einer optimalen Testumgebung. Durch die Auswahl von Jasmine als Testframework und Chrome als Zielbrowser stellen Sie sicher, dass Tests konsistent laufen. Die Dateipfade weisen Karma an, wo Quellcode und Tests zu finden sind.

Während der Einrichtung:

  • Testframework: Jasmine
  • Browser: Chrome
  • Dateipfade: src/*.js, test/*.spec.js
  • Behalten Sie die Standardeinstellungen für andere Optionen bei

 4. Projektstruktur

my-test-project/
├── src/
│   └── calculator.js
├── test/
│   └── calculator.spec.js
├── karma.conf.js
└── package.json

Eine logische Dateistruktur trennt Anwendungscode (src) von Testspezifikationen (test). Die .spec.js-Endung identifiziert Testdateien klar, gemäß JavaScript-Community-Konventionen. Diese Organisation verbessert die Wartbarkeit.

5. Beispielcode (src/calculator.js)

Hier ist der Beispielcode, für den wir Tests schreiben werden:

6. Testfälle (test/calculator.spec.js)

Jasmines lesbare Syntax verwendet describe-Blöcke, um verwandte Tests zu gruppieren, und it-Aussagen für individuelle Szenarien. Jede expect-Assertion überprüft spezifische Funktionalität und schafft ein Sicherheitsnetz gegen Regressionen.

7. npm-Scripts (package.json)

Benutzerdefinierte Scripts in package.json automatisieren die Testausführung. Der –single-run-Modus ist ideal für CI/CD-Pipelines, während der Watch-Modus während der Entwicklung sofortiges Feedback liefert. Diese Shortcuts optimieren Ihren Test-Workflow.

8. Tests ausführen

Die Testausführung validiert das Codeverhalten in Echtzeit. Karma startet eine Browser-Instanz, führt alle Tests aus und meldet Ergebnisse im Terminal. Grüne Häkchen bestätigen korrekte Funktionalität, während Fehler problematische Bereiche hervorheben.


Universelle Tipps

  • Beginnen Sie mit einfachen Testfällen
  • Verwenden Sie describe() für Testgruppen
  • Jedes it() repräsentiert ein Test-Szenario
  • Gängige Matcher: .toBe(), .toEqual(), .toThrow()
  • Debuggen Sie bei Bedarf mit console.log() in Tests

Und jetzt: Frohes Testen! 🚀

de_DEDeutsch