Zum Formulieren der Tests stehen Ihnen eine Reihe von Assertions zur Verfügung. Dabei handelt es sich um Methoden, mit deren Hilfe Sie einen bestimmten Sachverhalt prüfen können.
Tests sind normalerweise durch die drei A gekennzeichnet: Arrange, Act und Assert.
Das bedeutet, dass Sie zuerst eine Umgebung schaffen, in der ein bestimmter Test ablaufen soll, danach findet die zu testende Aktion statt und im dritten Punkt, dem Assert, kommen die Assertion-Methoden des Frameworks ins Spiel. Sie dienen dazu, das Ergebnis der Aktion mit einer bestimmten Erwartung abzugleichen. Einige Beispiele für Assertions finden Sie in Tabelle 1.
Assertion | Funktion |
---|---|
assertEquals | Vergleich zwischen Ergebnis und Erwartung, nicht typsicher |
assertSame | Vergleich zwischen Ergebnis und Erwartung, typsicher |
assertMatches | Prüfung, ob ein regulärer Ausdruck einer Zeichenkette entspricht |
assertNull | Prüfung, ob der Wert Null ist |
assertUndefined | Prüfung, ob der Wert Undefined ist |
assertTrue | Prüfung, ob der Wert True ist |
assertFalse | Prüfung, ob der Wert False ist |
Für einige Assertions wie beispielsweise assertSame, assertNull oder assertUndefined existieren auch entsprechende Negierungen, also zum Beispiel assertNotSame, was die Bedeutung der Assertion ins Gegenteil umkehrt, sodass Sie nicht erst umständlich Ihren Ausdruck umkehren müssen und der Test dadurch unleserlich wird. Listing 1 zeigt einen Unit Test mit JsUnit, Abbildung 1 zeigt die Ausgabe.
Listing 1: Unit Test mit JsUnit
function MyTest(name) { TestCase.call(this, name); } MyTest.prototype = new TestCase(); MyTest.prototype.testAdd = function() { this.assertEquals(1 + 1 , '2'); } function MyTestSuite() { TestSuite.call(this, "MyTestSuite"); this.addTestSuite(MyTest); } MyTestSuite.prototype = new TestSuite(); MyTestSuite.prototype.suite = function() { return new MyTestSuite(); }

Zugegebenermaßen ist JsUnit mittlerweile in die Jahre gekommen und es gibt modernere und vor allem angenehmer zu bedienende Testframeworks. Nichtsdestotrotz finden sich die in diesem Abschnitt beschriebenen Grundlagen in ähnlicher Art und Weise auch in den übrigen Frameworks wieder.
Themen der folgenden Seiten:
- QUnit
- Jasmine
- JsTestDriver
- Fazit