-
Notifications
You must be signed in to change notification settings - Fork 0
JavaScript Testing
Es gibt eine Vielzahl von JavaScript-Testing-Frameworks. Die populärsten sind:
- JsUnit (http://www.jsunit.net/)
- QUnit von JQuery (http://docs.jquery.com/Qunit)
- YUI Test von Yahoo (http://developer.yahoo.com/yui/yuitest/)
Nachdem wir uns diese drei Frameworks angesehen haben, haben wir uns aus folgenden Gründen für QUnit entschieden:
- Qunit ist das populärste dieser drei Frameworks
- Es ist einfach zu vestehen und erfüllt die Anforderungen für unser Projekt
- Es arbeitet gut mit dem Mocking-Framework QMock zusammen
- Wir werden zur Umsetzung des Clients JQuery(-Mobile) benutzen – da ist es naheliegend, auch das hauseigene Testing-Framework zu benutzen
Für QUnit und QMock wurde jeweils ein Prototype aufgesetzt, der die wichtigsten Funktionalitäten der Frameworks testet. Die Prototypes finden sich hier:
- prototypes/qunit/test.html
- prototypes/qmock/test.html
Achtung, QUnit funktioniert nur, wenn es über einen Webserver gestartet wird. Da beide Prototypes QUnit benutzen, müssen diese also über einen Webserver ausgeführt werden.
Obwohl die Prototypes die wichtigsten Funktionalitäten demonstrieren, werden möglicherweise Weitere benötigt. Diese finden sich hier
- http://docs.jquery.com/QUnit#API_documentation
- http://code.google.com/p/qmock/wiki/API_Documentation
Achtung, die Dokumentation von QMock ist nicht in allen Fällen up2Date – es kann also sein, dass etwas nicht genau so funktioniert, wie in der Doku beschrieben – im Zweifelsfall muss man kurz das SourceFile checken (submodules/qmock/qmock.js)
QUnit ist als git-submodule integriert (http://book.git-scm.com/5_submodules.html). Deshalb muss man, um das Framework zur Verfügung zu haben, den Befehl “git submodule init” ausführen. Ein weiterer nützlicher Befehl ist “git submodule update”, der sich die neueste Source aus dem externen Repository holt.
Achtung: QMock ist KEIN git submodule, da es nur als svn-Repository zur Verfügung steht.
Wird im Browser (wiederum über einen Webserver) client/android/test/main.html aufgerufen, werden alle aktuellen Client-Tests ausgeführt.
Um einen neuen Test zu schreiben, soll wie folgt vorgegangen werden:
- Im File client/android/test/main.html die nötigen Dependencies (hauptsächlich die Methoden, die man testen will) importieren
- Im Verzeichnis client/android/test/tests ein neues File gemäss Vorlage (VorlageTest.js) erstellen (für eine Gruppe von Tests) und dieses wiederum im main-File importieren
- Im neu angelegten File beliebig viele Tests schreiben und Freude haben