Unit Testing in Java Teil 2: Ein Einfaches Beispiel

/ Autor: Thomas, 29 Aug 2008

In Teil 1 des Unit Testing Tutorials habe ich erklärt wie Unit Tests funktionieren. Um das an einem einfachen Beispiel zu vertiefen, schreiben wir unseren ersten eigenen Unit Test. JUnit ist in Eclipse schon vorhanden und muss lediglich beim Erstellen eines Projekts als Bibliothek importiert werden.

Schritt 1: Erstellen eines JUnit-Projekts in Eclipse

Neues Projekt erstellen

Abbildung 1: Neues Projekt erstellen

Build Einstellungen

Abbildung 2: Build Einstellungen

Auswahldialog für Bibliotheken

Abbildung 3: Auswahl der Bibliothek

JUnit-Version

Abbildung 4: JUnit-Version

Erstellen Sie ein neues Java-Projekt in Eclipse und vergeben Sie einen sinnvollen Namen (Abbildung 1). Unser Beispiel wird aus simplen Rechenfunktionen bestehen. Wichtig ist, das in den Build-Einstellungen im Reiter Libraries die JUnit-Bibliothek eingebunden wird. Dazu wählt man Add Library … (Abbildung 2) und dann JUnit (Abbildung 3). Im darauffolgenden Fenster kann die Version von JUnit ausgewählt werden. In unserem Fall nehmen wir die Version 4 (siehe Abbildung 4).

Schritt 2: Anlegen eines Tests

JUnit in Eclipse

Abbildung 5: JUnit in Eclipse

Wir legen uns die Klasse Rechnen.java (Quellcode 1) in unserem Projekt an. Das wird die Klasse sein, welche die zu testenden Funktionen enthält. Wir erstellen uns eine Methode names addiere(). Die Funktion empfängt zwei Zahlen addiert diese beiden und gibt diese zurück. Wir werden diese Klasse später noch um weitere Funktionen erweitern. Wie ich in Teil 1 der Artikelreihe schon erwähnt habe, werden für gewöhnlich die Tests zuerst geschrieben und dann die Funktion implementiert.

Als nächstes erstellen wir uns die Klasse TestRechnen.java (Quellcode 2). Diese erbt von der JUnit-Klasse TestCase. Wir erzeugen eine neue Instanz von Rechnen, deren Funktionen wir Testen wollen. Die Methode, welche den Test ausführt nennen wir testAddiere(). Alle Methoden, welche einen Test ausführen, müssen auch mit test beginnen. Innerhalb der Funktion wird assertEquals aufgerufen. Diese Funktion wird von JUnit gestellt. AssertEquals überprüft ob der Wert den man erwartet der Gleiche ist, welcher von der zu testenden Funktion zurückgegeben wird. In unserem Beispiel erwarten wir das der Aufruf der Methode addiere mit den Zahlen 1 und 1, 2 ergeben.

Quellcode 1: Rechnen.java
package de.zeroseven.tutorials;

public class Rechnen {

	public int addiere(int zahl1, int zahl2) {
		return zahl1 + zahl2;
	}
}

Um unseren Test nun auszuführen, klicken wir mit Rechts auf TestRechnen und wählen Run As … -> JUnit-Test. In dem sich darauf öffnenden (Abbildung 5) Fenster, werden nun alle Tests angezeigt. Die allerwichtigste Anzeige ist der große grüne Balken, welcher anzeigt das alle Tests ohne Fehler durchlaufen worden sind. 1 und 1 sollte ja auch 2 ergeben. Um zu sehen, wie es aussieht wenn ein Test schief läuft, stellen Sie den Erwartungswert auf was Anderes als 2. Dann wird der grüne Balken rot angezeigt.

Quellcode 2: TestRechnen.java
package de.zeroseven.tutorials;

import junit.framework.TestCase;

public class TestRechnen extends TestCase {

	private Rechnen myRechnen = new Rechnen();

	public void testAddiere() throws Exception {
		assertEquals(2, myRechnen.addiere(1,1));
	}
}

Unterhalb des Balkens werden Details zum Schieflaufen des Tests angezeigt, wie zum Beispiel wo der Fehler aufgetreten ist. Was uns durch die Veränderung des Erwartungswertes angezeigt wird ist kein Fehler sondern ein Failure. Ein Fehler wird in JUnit als Error bezeichnet. Um dies zu provozieren fügen wir eine neue Testfunktion namens testError ein (Quellcode 3). Diese macht nichts anderes als eine Exception zu werfen. Ändern Sie den Erwartungswert wieder auf 2 und starten sie den Unit-Test neu. Nun wird ein Fehler und kein Failure mehr angezeigt.

Quellcode 3: Funktion die einen Error erzeugt
public void testError() throws Exception {
	throw new Exception("Irgendwas lief schief");
}

Das war unser erster einfacher Unit-Test. Im nächsten Teil der Reihe werde ich auf die unterschiedlichen Testmethoden wie assertEquals, welche JUnit schon mitbringt.

One Response to “Unit Testing in Java Teil 2: Ein Einfaches Beispiel”

  1. [...] public links >> beispiel Unit Testing in Java Teil 2: Ein Einfaches Beispiel First saved by npost | 2 days ago Sir John Templeton – ein Beispiel, wie Spirit & Pofit [...]

Leave a Reply