Auf Herz und Nieren prüfen

Tests mit Mozilla

1.12.2010 von Andreas Hitzig und Daniela Schrank

ca. 4:15 Min
Ratgeber
VG Wort Pixel
  1. JavaScript Testing
  2. Tests mit Mozilla

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.

image.jpg
Fireunit integriert sich als eigene Registerkarte in die Umgebung von Firebug.
© Internet Magazin

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.

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

internet, apple, safari, web-apps, ios, remote debugging, tipps, tricks

Tipps & Tricks

Remote Debugging mit Safari Web Inspector

Wie Sie mit dem Safari-Browser schnell Webseiten und Web-Apps auf iOS debuggen können, zeigen wir Ihnen.

internet, webdesign, responsive webdesign, Performance, optimierung

Responsives Webdesign

Mehr Performance fürs Responsive Webdesign

Trotz aller Verzüge gibt es auch einen Schwachpunkt beim Responsive Webdesign: Die Performance ist oft schlecht, da dieselben Ressourcen für…

internet, webdesign, adobe,  Illustrator, CS6

Webdesign

Webdesign in Adobe Illustrator CS6

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.

Facebook stellte die neue Suche

Facebook

Facebooks Social Graph Search

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?

Der BGH erklärt das Internet zur Lebensgrundlage.

Online-Recht

Darauf müssen Sie bei den AGB achten

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.