Unit- Tests für JavaScript- Einführung
Definitionen
- Unit
-
Im Zusammenhang mit Tests eine einzelne JavaScript- Funktion wie
function add(a, b) {return a + b;}
. - Unit- Test
- Parameter einer Unit werden an Testeingabewerte gebunden. Der zurückgegebene Wert wird mit dem erwarteten Wert verglichen. Das Ergebnis wird dokumentiert.
- Testframework
- Bibliothek, mit der Unit- Tests implementiert werden können. Gliedert sich in Funktionen, mit denen tatsächiche Rückgabewerte mit den erwarteten Rückgabewerten verglichen werden können (Assert), und Funktionen, die Listen von Asserts als Testaufträge definieren. Beispiel QUnit und Jasmin.
- Testrunner
- Tool, das eine Liste von JavaScript- Dateien auf Änderungen überwacht, und unmittelbar nach detektieren von Änderungen Unit- Tests für die Dateien startet. Beispiel: Karma
Installation und Konfiguration des Karma- Testrunners
Voraussetzung: nodeJS zusammen mit seinem Paketmanager npm muss installiert sein.- Karma installieren mittels
npm install -g karma
-
Für Karma konfigurieren
- Browser (JavaScript- Engines), in denen die Tests auszuführen sind
- einzusetzendes Testframework (z.B. QUnit)
- Liste der Quelltexte, in denen die zu testenden Funktionen sowie die Tests definiert sind
Die Konfiguration kann mit einem in Karma integrierten Assistenten erfolgen. Er wird gestartet durch
karma init
. Der Start sollte in dem Projektverzeichnis mit den zu testenden JavaScript- Dateien erfolgen.Der Assistent schreibt die Einstellungen in eine Datei namens karma.conf.js. Diese kann nachträglich geändert/angepasst werden.
-
Tests starten mit
karma start
karma überwacht nun die zuvor definierten Quelltextdateien auf Änderungen. Wird eine Änderung erkannt, dann werden die Tests ausgeführt. Im Kommandozeilenfenster kann anhand der Rückmeldungen von Karma erkannt werden, ob die Tests erfolgreich waren.