Testgetriebene Entwicklung mit JUnit
JUnit ist eine OpenSource 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 - 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. Die JUnit API kann unter http://download.sourceforge.net/junit/ in der jeweils aktuellen Version bezogen werden.
Installation
JUnit benötigt keine besondere Installation. In den Classpath ist lediglich das Java Archiv junit.jar aufzunehmen. Alternativ ließe sich natürlich auch das "ext" Verzeichnis verwenden.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. Moderne Entwicklungsumgebungen wie z.B. der JBuilder von Borland bringen zudem einen eigenen Testrunner mit, welche sich in die jeweilige Entwicklungsumgebung integrieren.Einen Test schreiben
Eigentlich solltest Du den Test immer vor dem eigentlichen Code schreiben. 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.framwork.TestCase wird schließlich normalerweiser der Ausgangspunkt deiner Prüfung sein, indem du von dieser Klasse erbst. Die Methodennamen die deinen Testcode beinhalten müssen dabei stets mit test beginnen.Ein einfacher Test der einen Fehler ausgibt könnte so aussehen:
import junit.framwork.TestCase;
public class ZeichenkettenVergleich extends TestCase {
public void testZeichenketten () {
final String sebastian = "Sebastian";
final String ritter = "Ritter";this.assertEquals (sebastian, ritter); // wir Behaupten die Zeichenketten wären identisch
}
}
Mehrere Test hintereinander
Nun wäre es unschön, wenn du jeden Test einzelnd starten müsstest. Um Tests zu organisieren besteht die Möglichkeit TestCases in einer junit.framework.TestSuite zu organisieren. Dabei können TestSuites ineinander verschachtelt werden, was Dir ein mächtiges Mittel zur Hand gibt um deine Anwendungen auch bei größeren Änderungen auf Fehlerquellen zu untersuchen. Um deinen TestCase einer TestSuite hinzuzufügen reicht hierbei eine Zeile:TestSuite suite = new TestSuite (ZeichenkettenVergleich.class);

