Tests mit Mozilla
- JavaScript Testing
- Tests mit Mozilla
JSUnit erlaubt auch die Verarbeitung einzelner Testdateien in einer definierten Reihenfolge. ...
JSUnit erlaubt auch die Verarbeitung einzelner Testdateien in einer definierten Reihenfolge.
function Stapelverarbeitung() { var erg = new JSUnitTestsuite(); erg.addTestPage("meinTest_1.html"); erg.addTestPage("meinTest_2.html"); return erg; }
Erzeugen Sie dazu als Erstes eine Variable vom Typ JSUnitTestsuite() und weisen Sie dieser anschließend über die Funktion addTestPage() die einzelnen Seiten zu.
Tests mit Mozilla
Nutzen Sie heute bereits Firebug zum Testen von Entwicklungen innerhalb von Firefox, sollten Sie sich die Erweiterung Fireunit genauer anschauen. Bei dieser handelt es sich um eine entsprechende Umsetzung der JavaScript Testing Umgebung für den Firefox Browser. Diese installieren Sie direkt von der Website von Fireunit (Fireunit.org/Fireunit-1.0a3.xpi ) - die einzige Voraussetzung ist das bereits installierte Firebug.

In den Blogs von John Resig (ejohn.org/blog/Fireunit/ ) und Jan Odvarko (www.softwareishard.com/blog/firebug/Fireunit-testing-in-the-firebug-world/ ), den Entwicklern von Fireunit, erfahren Sie mehr über die Nutzung der Test API. Den Einstieg realisieren Sie am einfachsten über den Blog von Jan Odvarko. Dieser gibt detaillierte Auskunft über die Nutzung der API.Die einzige Voraussetzung für den erfolgreichen Einsatz von Fireunit besteht in der Installation des Addons. Für die anschließende Nutzung der Funktionalitäten ist kein weiteres Einbinden von Bibliotheken notwendig.
Das erste Beispiel
Ein erstes einfaches Skript-Beispiel zeigt, wie Sie einen einfachen Vergleich zwischen zwei Argumenten durchführen und einen True-like/False-like Test durchführen.
fireunit.ok(true, "Testergebnis positiv"); fireunit.ok(false, "Testergebnis negativ"); fireunit.compare("Meine Zeichenkette", "Meine Zeichenkette", "Vergleich - Zeichenketten identisch"); fireunit.compare ("<div>Zeichenkette 1</ div>", "<div>Zeichenkette 2</div>", "Vergleich - Zeichenketten nicht iden tisch");
Führen Sie anschließend die HTML-Seite aus, sehen Sie auf der Registerkarte Test die Resultate der Ausführung. Jeder der Befehle bringt eine beschreibende Zeichenkette mit sich. Diese sehen Sie als Überschrift der verschiedenen Rubriken innerhalb der Registerkarte.Funktionen, die einen negativen Ausgang genommen haben, erscheinen in roter Farbe. Im Falle des Vergleichs der Zeichenketten haben Sie in der jeweiligen Rubrik eine zusätzliche Registerkarte Compare, in denen Sie das Ergebnis des Vergleichs sehen. Im Fenster sehen Sie sowohl die aktuelle Zeichenkette als auch die erwartete Zeichenkette - sind diese unterschiedlich sehen Sie in der Rubrik Difference auch die Abweichungen.
Weitere Beispiele mit Fireunit
Mit der Fireunit Erweiterung können Sie jedoch nicht nur Überprüfungen durchführen, sondern auch Tests automatisieren, indem Sie Benutzereingaben simulieren. Für diese Zwecke stehen Ihnen die Aktionen mouseDown, click, focus und key für die Eingabe zur Verfügung.
var input = document. getElementsByTagName("input")[0]; fireunit.mouseDown( input ); fireunit.click( input ); fireunit.focus( input ); fireunit.key( input, "a" );
Im Beispiel wird ein Eingabefeld verwendet, um dieses anzuklicken, den Fokus daraufzusetzen und es mit dem Buchstaben "a" zu füllen.Dabei weisen Sie als Erstes einer Variablen das entsprechende Element für den Zugriff zu - im Beispiel per document.getElements-ByTagName sowie einen Indexzähler. Anschließend greifen Sie bequem über diesen Zeiger auf das Element zu und führen Ihre Aktionen aus.
Stapelverarbeitung
Fireunit verfügt auch über eine einfache sequentielle Verarbeitung von Tests, ohne diese separat anstoßen zu müssen. Dazu dient Ihnen die Funktion Fireunit.run-Tests(). Dieser geben Sie als Parameter die HTML-Dateien mit, welche Ihre Testbefehle enthält. Möchten Sie mehrere Dateien verarbeiten, fügen Sie diese einfach mit Komma getrennt und in Anführungszeichen der Funktion bei, also beispielsweise
fireunit.runTests("meinTest1.html", "meinTest2.html");
Damit Ihre aufrufende HTML-Datei nach der Beendigung der Testdateien auch Ihre Arbeit fortsetzt, geben Sie zum Abschluss der Verarbeitung in dieser den Befehl Fireunit.testDone(); mit. Dies kennzeichnet ein Ende der Tests und lässt eine normale Ausführung weiterer Skripte zu.
Erweiterung der Oberfläche
Auf der Website von Jan Odvarko erfahren Sie nicht nur, wie Sie die Test API sinnvoll einsetzen können, der Entwickler geht noch einen Schritt weiter und zeigt Ihnen in einem Workshop, wie Sie die Oberfläche von Fireunit sinnvoll erweitern und auf Ihre Belange anpassen können. Genaueres dazu erfahren Sie unter www.softwareishard.com/blog/firebug/Fireunit-testing-inthe-firebug-world /.
Fazit
Gerade bei größeren Browser-seitigen Entwicklungen lohnt sich der Einsatz von Testframeworks für die Durchführung von Funktionstests und inhaltlichen Prüfungen auf Richtigkeit der Anwendungen. Die beiden Test-Frameworks unterscheiden sich stark im Funktionsumfang und in der Handhabung. Fireunit ist aufgrund seiner direkten Verknüpfung mit dem Firefox Browser grundsätzlich im Leistungsumfang eingeschränkt, bietet jedoch speziell für diesen Browser eine einfach zu bedienende Testumgebung, die sich nahtlos in Firebug integriert.Liegt Ihr Fokus jedoch auf einer bestmöglichen Browser-Abdeckung bei Ihren Testverfahren, ist JSUnit die bessere Variante. Haben Sie bereits mit einer anderen xUnit Testumgebung gearbeitet, werden Sie sich sehr schnell eingearbeitet haben. Dank der umfangreichen Testbeispiele, welche Sie in der JSUnit-Auslieferung im Verzeichnis tests finden, gelingt ein schneller Einstieg in die Testentwicklung.
Weitere Alternativen zum Unit Testing
Neben den in diesem Artikel vorgestellten Frameworks gibt es zahlreiche weitere Kandidaten, die sich mit dem Testen von Entwicklungen beschäftigen. Zwei interessante Vertreter dieser Gattung sind die beiden Frameworks QUnit und YUI3.Test:
- Wenn Sie mit jQuery entwickeln, sind Sie sicherlich schon mit dem Unit-Testing Framework QUnit (docs.jquery.com/Qunit ) in Berührung gekommen. Es zeichnet sich durch einen einfachen Aufbau aus und ist auch für Einsteiger leicht zu bedienen.
- Das zweite Framework YUI3.Test (developer.yahoo.com/yui/3/test/ ) ist ebenfalls eng mit einem Framework verbunden. Wie der Name vermuten lässt, ist das Framework Bestandteil der Yahoo User Interface (YUI) Bibliothek.