Entdecke die Möglichkeiten!

JavaScript Testing im Aufwind (Teil 3)
Kommentare

Windows Developer

Der Artikel „JavaScript Testing im Aufwind“ von Sebastian Springer ist erstmalig erschienen im Windows Developer 7.2012
Im Folgenden wird QUnit verwendet, ein weit verbreitetes und

Windows Developer

Der Artikel „JavaScript Testing im Aufwind“ von Sebastian Springer ist erstmalig erschienen im Windows Developer 7.2012

Im Folgenden wird QUnit verwendet, ein weit verbreitetes und sich aktiv in der Weiterentwicklung befindliches Framework für Unit Tests. QUnit wurde entwickelt, um damit jQuery zu testen. Mit diesem Framework sollen die Prinzipien von Unit Tests in JavaScript verdeutlicht und eine kurze Einführung in die Praxis gegeben werden.

QUnit setzt sich zum Ziel, dem Entwickler ein umfangreiches Toolset zur Hand zu geben, das ohne großen Aufwand verwendet werden kann. Die mit QUnit erstellten Tests lassen sich ganz einfach in jedem Browser ausführen. Die dafür notwendige Umgebung kann mit wenigen Schritten aufgesetzt und dann für sämtliche Tests verwendet werden.

Die Grundlage für browserbasierte Unit Tests mit QUnit bildet eine einfache HTML-Seite, die als statischer Test Runner verwendet wird. Im ersten Schritt werden qunit.js, die Quelle des Testframeworks, und ein Style Sheet, das zur Darstellung der Testergebnisse dient, eingebunden, im Anschluss dann die zu testenden Klassen, damit der Quellcode für die Tests zur Verfügung steht.

Außerdem benötigt QUnit zur Darstellung der Testergebnisse noch einige weitere Markups im Seitenkörper. Damit sind aber auch schon alle Voraussetzungen für die Ausführung der Tests erfüllt. Den grundsätzlichen Aufbau eines Unit Test sunter QUnit finden Sie in Listing 1.

Listing 1
test("Addition success", 1, function() {
  var testObj = new MathOperation();
  ok(5, testObj.add(2, 3);
});  

Die QUnit-Methode test() sorgt dafür, dass die Tests entsprechend der angegebenen Spezifikation ausgeführt werden. Hierzu sind einige Parameter notwendig. Als erstes wird der Name des Tests übergeben. Unter diesem Namen werden die Ergebnisse angezeigt, weswegen er möglichst beschreibend sein sollte, um eine spätere Zuordnung zu ermöglichen. Der zweite, optionale Parameter gibt die Anzahl der Assertions in diesem Test an.

Was sind Assertions?

Assertions sind das wesentliche Element von Unit Tests. Kent Beck, Entwickler von SUnit, dem Unit-Testing-Framework unter Smalltalk und dessen Portierung auf Java unter dem Namen JUnit, bezeichnet Assertions als ein „Statement, das den Rückgabewert des Quellcodes vorhersagt. Ist diese Vorhersage falsch, weist dies auf einen Fehler im Quellcode hin“.

Finden nun weniger oder mehr Assertions als angegeben im Test statt, gilt er als fehlgeschlagen. Es ist grundsätzlich empfehlenswert, bereits im Vorfeld festzulegen, wie viele Assertions man in einem Test verwenden möchte, da so verhindert werden kann, dass unvollständige Tests unentdeckt bleiben. Der wichtigste Parameter ist schließlich der Callback; der eigentliche Test.

Hier wird die Logik des Tests platziert, die bei jeder Ausführung abgearbeitet wird. Dem Entwickler stehen eine Reihe verschiedener Assertions zur Verfügung, um bei einer Ausführung einer Methode die erwarteten mit den tatsächlichen Ergebnissen abzugleichen und, falls sie nicht übereinstimmen, den Test fehlschlagen zu lassen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -