JUnit-Tests schreiben und ausführen

In diesem Abschnitt verwenden Sie das Testgerüst JUnit, um Tests zu schreiben und auszuführen. Eine Einführung in JUnit können Sie im Handbuch JUnit Cookbook nachlesen.

Tests schreiben

Bevor Sie JUnit-Tests schreiben können, müssen Sie die Bibliothek junit.jar zu Ihrem Erstellungsklassenpfad hinzufügen. Die Eclipse-Installation enthält JUnit im Plug-in org.junit:

  1. Erstellen Sie ein Projekt namens JUnitTest.
  2. Öffnen Sie die Eigenschaftenseite für den Erstellungspfad des Projekts.
  3. Wechseln Sie auf die Registerkarte Bibliotheken.
  4. Fügen Sie die in "org.junit" enthaltene Datei junit.jar im Verzeichnis "plug-ins" als externe JAR für das Projekt hinzu.
Falls Sie die Quelle von JUnit durchsuchen wollen, ordnen Sie optional die Datei junitsrc.zip zur Datei junit.jar zu. Die komprimierte Quellendatei befindet sich im Plug-in "org.eclipse.jdt.source" in "src/org.junit_3.8.1".

Nachdem das Projekt "JUnitTest" nun auf die JUnit-Klassen zugreifen kann, können Sie Ihren ersten Test schreiben. Sie implementieren den Test in einer Unterklasse von TestCase. Hierzu können Sie entweder den Standardassistenten für Klassen oder den speziellen Assistenten Testcase verwenden:

  1. Öffnen Sie den Assistenten für neue Ressourcen (Datei > Neu > Andere...).
  2. Wählen Sie im linken Teilfenster Java > JUnit, wählen Sie im rechten Teilfenster TestCase aus, und klicken Sie auf Weiter.
  3. Geben Sie den Wert TestFailure als Namen Ihrer Testklasse ein:

    Assistent 'TestCase erstellen' - Seite 1

  4. Klicken Sie auf Fertig stellen, um die Testklasse zu erstellen.

Fügen Sie eine Testmethode, die fehlschlägt, zur Klasse TestFailure hinzu. Mit Hilfe der Schablone test können Sie eine Testmethode ganz schnell eingeben. Hierzu geben Sie test ein, und drücken Sie dann die Tasten Strg+Leertaste, um die Unterstützung für Code zu aktivieren. Anschließend wählen Sie die Schablone "test" aus. Ändern Sie den Namen der erstellten Methode in testFailure, und rufen Sie die Methode fail() auf.

public void testFailure() {
    fail();
}

Jetzt können Sie Ihren ersten Test ausführen.

Tests ausführen

Um "TestFailure" auszuführen, aktivieren Sie das Dropdown-Menü Ausführen in der Symbolleiste, und wählen Sie die Optionen Ausführen als > JUnit-Test aus. Sie können die Testergebnisse in der Sicht JUnit untersuchen. Diese Sicht zeigt den Fortschritt und den Status der Testausführung an:

Fehlgeschlagener Test

Die Sicht wird bei jedem Starten einer Testausführung in der aktuellen Perspektive angezeigt. Besonders bequem können Sie arbeiten, indem Sie die Sicht "JUnit" als Schnellsicht verankern. Die Sicht "JUnit" enthält zwei Registerkarten: Eine Registerkarte zeigt eine Liste der Fehler an, und die andere Registerkarte zeigt die vollständige Testfolge als Baumstruktur an. Sie können von einem Fehler zur entsprechenden Quelle navigieren, indem Sie im Fehlertrace auf die entsprechende Zeile doppelklicken.

Verankern Sie die Sicht "JUnit" als Schnellsicht, entfernen Sie die Anweisung fail() in der Methode testFailure(), damit der Test weiterläuft, und führen Sie den Test erneut aus. Hierzu können Sie entweder in der Symbolleiste der Sicht auf die Schaltfläche Erneut ausführen doppelklicken oder das Programm erneut ausführen, das durch die Aktivierung des Dropdown-Menüs Ausführen gestartet wurde. Dieses Mal sollte der Test erfolgreich verlaufen. Da der Test erfolgreich ausgeführt wurde, wird die Sicht "JUnit" nicht aufgerufen, sondern der Erfolgsanzeiger wird auf dem Symbol für die Sicht "JUnit" angezeigt, und die Statuszeile gibt das Testergebnis an. Um Sie an die erneute Ausführung Ihrer Tests zu erinnern, wird das Symbol der Sicht immer dann mit einem Stern (*) versehen, wenn Sie den Inhalt des Arbeitsbereichs nach der Ausführung ändern.

Erfolgreicher Test - Ein Test wurde erfolgreich ausgeführt.
Erfolgreicher Test, jedoch Arbeitsbereichsänderung - Ein Test wurde erfolgreich ausgeführt, aber der Arbeitsbereichsinhalt wurde seit dem letzten Testlauf geändert.

Neben der oben beschriebenen Vorgehensweise können Sie einen Testcase auch folgendermaßen ausführen:

Testkonfiguration anpassen

Wenn Sie Parameter übergeben oder die Einstellungen für einen Testlauf anpassen wollen, öffnen Sie den Dialog "Startkonfiguration". Wählen Sie die Option Ausführen... im Dropdown-MenüAusführen der Symbolleiste aus.

JUnit-Startkonfiguration

In diesem Dialog können Sie den auszuführenden Test, seine Argumente, seinen Laufzeitklassenpfad und die Java-Laufzeitumgebung angeben.

Testfehler debuggen

Bei einem Testfehler können Sie das Debug mit den folgenden Schritten vornehmen:

  1. Doppelklicken Sie in der Sicht "JUnit" im Stack-Trace auf den Fehlereintrag, um die entsprechende Datei im Editor zu öffnen.
  2. Setzen Sie am Anfang der Testmethode einen Unterbrechungspunkt.
  3. Wählen Sie den Testcase aus, und verwenden Sie die Optionen  Debug als >JUnit-Test im Dropdown-Menü Debug.

Eine JUnit-Startkonfiguration ist mit einer Option "keep alive" versehen. Falls Ihre Java-VM die sofortige Codeersetzung unterstützt, können Sie den Code korrigieren und den Test ohne das erneute Starten des gesamten Testlaufs wiederholen. Zur Aktivierung dieser Option wählen Sie das Markierungsfeld JUnit nach einem Testlauf beim Debug weiterhin ausführen in der JUnit-Startkonfiguration aus.

Testfolge erstellen

Mit dem JUnit-Assistenten Testfolge können Sie eine Testfolge erstellen. Sie können die Gruppe der Klassen auswählen, die zu einer Folge gehören sollen.

  1. Öffnen Sie den Assistenten für neue Ressourcen.
  2. Wählen Sie im linken Teilfenster Java > JUnit, wählen Sie im rechten Teilfenster TestSuite aus, und klicken Sie auf Weiter.
  3. Geben Sie einen Namen für Ihre Testfolgenklasse ein (konventionsgemäß wird "AllTests" verwendet, diese Angabe wird standardmäßig angezeigt).

    Assistent 'Testfolge'

  4. Wählen Sie die Klassen aus, die in der Folge enthalten sein sollen. Gegenwärtig ist nur eine einzige Testklasse vorhanden, aber Sie können später weitere zur Folge hinzufügen.

Mit den folgenden beiden Methoden können Sie Testklassen aus der Testfolge entfernen:

Hinweis: Der Assistent stellt zwei Markierungen (//$JUnit-BEGIN$ und //$JUnit-END$) in die erstellte Testfolgenklasse, mit deren Hilfe vorhandene Testfolgenklassen aktualisiert werden können. Die Bearbeitung des Codes zwischen den Markierungen ist nicht zu empfehlen.

Copyright (c) 2000, 2003 IBM Corporation und Andere. Alle Rechte vorbehalten.