Nachträglicher Einsatz von JUnit zum Testen von älterem Code

Hier erzeugt testCreate ein Thing und verwendet dann die TestCase-Methode assertEquals, welche einen erwarteten Wert und einen „tatsächlichen“ Wert als Parameter übernimmt. Der Test schlägt fehl, wenn die beiden Werte nicht übereinstimmen. So kann überprüft werden, ob Thing den Wert liefert, den es liefern soll.

In testAdd wird ein Thing erzeugt, der Wert 200 addiert und das Ergebnis gespeichert. Zwei Aufrufe von assertEquals überprüfen dann das Ergebnis der add-Methode, und ob Thing den neuen Wert behalten hat. Man beachte hier, dass assertEquals als zusätzlichen Parameter einen String übernehmen kann, der ausgegeben wird, wenn der Test fehlschlägt.

Bevor man diesen Code kompilieren kann, muss man erst einmal das JUnit-Framework selbst installieren. Zu finden ist es auf der entsprechenden Website. Man entpackt es einfach dort, wo man auch seine anderen Libraries speichert, und fügt dann die Datei junit.jar dem Klassenpfad hinzu. Für dieses Beispiel wurde JUnit nach c:junit3.8.1 entpackt:


C:Thing>set CLASSPATH=C:junit3.8.1junit.jar;.

Es folgt die Kompilierung:


C:Thing>javac *.java

Es gibt zwei Standardverfahren, um Tests durchzuführen: über die Kommandozeile oder über eine grafische Benutzeroberfläche. Zuerst der Aufruf über die Kommandozeile. Der textbasierte Test-Runner befindet sich in junit.textui.TestRunner. Er übernimmt einen Parameter, den Namen des TestCase, in diesem Fall „ThingTest“. Und so wird er ausgeführt:


Der Test schlug fehl. Wie sind die Ergebnisse zu interpretieren? Das „..F“ zeigt jede der ausgeführten Testmethoden an, wobei die letzte fehlschlug. Nach Ausführung der Tests wird angezeigt, wie lange dies gedauert hat, und es wird ein Bericht erstellt:


Der Fehler trat also in der testAdd-Methode von ThingTest auf, und zwar bei einer Aussage. „Retained value“ stammt aus dem String-Parameter von assertEquals. Und schließlich erfährt man noch, welches der erwartete und der tatsächliche Wert waren. Wie man sieht, behält Thing seinen Wert nicht bei. Man kann die Methode add Thing.java wie folgt ändern:


public int add(int x) { n=n+x; return n; }

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Nachträglicher Einsatz von JUnit zum Testen von älterem Code

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *