Java 3rd Party: JUnit
Aus Wikibooks
Inhaltsverzeichnis |
[Bearbeiten] Grundlagen
JUnit ist eine Open-Source-API, welche von Erich Gamma für die systematischen Test von Java Klassen bzw. APIs entwickelt wurde. Dabei können die Methoden von Klassen im Blackboxtest überprüft werden. Dazu werden die Ergebnisse der Methoden mit einem vorher definierten Ausgangszustand mit dem erwarteten Ergebnis abgeglichen.
Ziel der JUnit API ist es hierbei gezielt und automatisiert zu testen, so dass das Einfügen von Debug Anweisungen in den Quellcode unterbleiben kann. JUnit kann unter http://download.sourceforge.net/junit/ in der jeweils aktuellen Version bezogen werden.
Sinn und Zweck von Unit-Tests im Allgemeinen behandelt das Kapitel Softwaretechnik: Unit-Testing.
[Bearbeiten] Installation
JUnit benötigt keine besondere Installation. In den Classpath ist lediglich das Java Archiv junit.jar aufzunehmen.
[Bearbeiten] Ausführen
JUnit besitzt mehrere Möglichkeiten zum Start. So kann die Klasse junit.swingui.TestRunner für einen grafisch aufbereiteten Test gestartet werden. Alternativ hierzu ist die Klasse junit.awtui.TestRunner oder junit.textui.TestRunner nutzbar. Insbesondere die Textvariante erweist sich in größeren Projekten mit automatisierten Buildprozessen als vorteilhaft.
[Bearbeiten] Einen Test schreiben
Eigentlich sollte man einen Test immer vor dem eigentlichen Code schreiben - naja. Das Basis-Interface ist junit.framework.Test, welches zur Organisation von Tests dient. Die Klasse junit.framework.Assert stellt Methoden zum Testen bereit - die Klasse junit.framework.TestCase wird schließlich normalerweiser der Ausgangspunkt Ihrer Prüfung sein, indem Sie von dieser Klasse erben. Die Methodennamen, die Ihren Code beinhalten müssen dabei stets mit test beginnen.
Ein einfacher Test, der einen Fehler ausgibt, könnte so aussehen:
import junit.framework.TestCase;
public class ZeichenkettenVergleich extends TestCase {
public void testZeichenketten() {
final String wikipedia = "Wikipedia";
final String wikibooks = "Wikibooks";
this.assertEquals(wikipedia, wikibooks); // wir behaupten, die Zeichenketten wären identisch
}
}
[Bearbeiten] Mehrere Test hintereinander
Um Tests zu organisieren besteht die Möglichkeit TestCases in einer junit.framework.TestSuite zu organisieren. Dabei können TestSuites ineinander verschachtelt werden, was Ihnen ein mächtiges Mittel zur Hand gibt um Ihre Anwendungen auch bei größeren Änderungen auf Fehlerquellen zu untersuchen. Um Ihren TestCase einer TestSuite hinzuzufügen reicht hierbei eine Zeile:
TestSuite suite = new TestSuite (ZeichenkettenVergleich.class);
[Bearbeiten] Testbedingungen herstellen
Um die notwendigen Testbedingungen herzustellen gibt es die Möglichkeit in Ihrem Testcase die Methode protected void setUp() zu überschreiben. Dies ist z.B. sinnvoll, wenn mehrere Testmethoden gleiche Bedingungen voraussetzen.
[Bearbeiten] Nach dem Test aufräumen
Auch nach einem Test müssen Sie eventuell aufräumen. So ist es z.B. immer sinnvoll die vorhandenen Datenbankverbindungen und Dateien zu schließen. Hierfür können Sie in Ihrem Testcase die Methode protected void tearDown() überschreiben.

