JUnit

From XennisWiki
Jump to: navigation, search

JUnit ist ein Unit-Test Framework für Java. Dieses ist bereits in der IDE Eclipse enthalten, auf die sich der folgende Artikel bezieht.

Beispiel Java Klasse

package core;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class MeineKlasse {

	/**
	 * Multipliziert zwei Zahlen
	 * 
	 * @param x Multiplikator 
	 * @param y Multiplikand 
	 * @return Ergebnis
	 */
	public int multipliziere(int x, int y) {
		return x * y;
	}
	
	/**
	 * Überprüft, ob eine Zahl gerade ist
	 * 
	 * @param x Zahl
	 * @return Ergebnis
	 */
	public boolean istGerade(int x) {
		if(x % 2 == 0) return true;
		else return false;
	}
	
	/**
	 * Gibt die erste Zeile der übergebenen Datei zurück
	 * 
	 * @param path Pfad zur Datei
	 * @return Erste Zeile der Datei
	 * @throws IOException
	 */
	public String readFile(String path) throws IOException {
		
		File file = new File(path);
		BufferedReader in = new BufferedReader(new FileReader(file));
		String line = in.readLine();

		return line;
	}
}
  • Rechtsklick auf die Klasse im Package Explorer > New > JUnit Test Case
  • Ggf. die Voreinstellungen anpassen > Next > die zu testenden Klassen bzw. Methoden auswählen (hier MeineKlasse) > Finish

Die automatisch erstelle Klasse MeineKlasseTest wiefolgt anpassen

package core;

import static org.junit.Assert.*;

import java.io.IOException;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

public class MeineKlasseTest {
	
	private MeineKlasse tester;

	@Rule
	public ExpectedException exception = ExpectedException.none();

	@Before
	public void init() {
		tester = new MeineKlasse();
	}
	
	@Test
	public void testMultipliziere() {
		assertEquals("Result", 50, tester.multipliziere(10, 5));
	}

	@Test
	public void testIstGerade() {
		assertTrue(tester.istGerade(4));
		assertFalse(tester.istGerade(3));
	}
	
	@Test
	public void testReadFile() throws IOException {
		IMeineKlasse tester = new MeineKlasse();
		assertEquals("Result", "HalloWelt", tester.readFile("daten.txt"));
		
		exception.expect(IOException.class);
		tester.readFile("D.A.T.E.I");
	}
}
  • (z.B. Rechtsklick auf das Projekt > ) Run as > JUnit Test

External links

  • EclEmma Testabdeckungsmonitor (Erweiterung für Eclipse)
  • FAQ