JUnit

Das Junit Framework dient zum Testen von Java-Programmen. Es eignet sich besonders für automatisierte Unit-Tests einzelner Klassen oder Methoden. Eine gute alternative zu zu Junit wäre TestNG.

Voraussetzungen sind folgende Bibliotheken:

JUnit Annotations


@BeforeClass
public static void setUpBeforeClass() throws Exception {
   // läuft für jede Testklasse nur ein einziges Mal 
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
   // läuft für jede Testklasse nur ein einziges Mal  
}

@Before
public void setUp() throws Exception {
   // Methoden werden vor jedem Testfall ausgeführt
}

@After
public void tearDown() throws Exception {
   // Methoden nach jedem Testfall
}	

@Test
public void meinTestfall() throws Exception {
   // kennzeichnet Methoden als Testfall
}	
	

class Calculator


package de.snowbits.test;

public class Calculator {

	public Double addition(Double a, Double b) {
		return a + b;
	}
	
	public Double subtraction(Double a, Double b) {
		return a - b;
	}
	
	public Double multiplication(Double a, Double b) {
		return a * b;
	}
	
	public Double division(Double a, Double b) throws DivisionException {
		if (b == 0)
			throw new DivisionException("Teilen durch 0 nicht möglich");
			
		return a / b;
	}
	
	public class DivisionException extends Exception {
		public DivisionException(String message) {
			super(message);
		}
	}

}
	

class CalculatorTest


package de.snowbits.test;

import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;

import de.snowbits.test.Calculator.DivisionException;

public class CalculatorTest {

	private Double _result;

	@Before
	public void setUp() throws Exception {
		_result = null;
	}

	@Test
	public void additionAandB() {
		_result = testee().addition(10d, 20d);
		Assert.assertNotNull(_result);
		Assert.assertTrue(_result == 30d);
	}
	
	@Test
	public void subtractionAandB() {
		_result = testee().subtraction(20d, 10d);
		Assert.assertNotNull(_result);
		Assert.assertTrue(_result == 10d);
	}

	@Test
	public void multiplicationAandB() {
		_result = testee().multiplication(10d, 10d);
		Assert.assertNotNull(_result);
		Assert.assertTrue(_result == 100d);
	}

	@Test
	public void divisionAandB() throws DivisionException {
		_result = testee().division(20d, 10d);
		Assert.assertNotNull(_result);
		Assert.assertTrue(_result == 2d);
	}

	@Test 
	public void divisionAwithZero() throws DivisionException {
		_result = testee().division(0d, 10d);
		Assert.assertNotNull(_result);
		Assert.assertTrue(_result == 0d);
	}
	
	@Test(expected=DivisionException.class)
	public void divisionBwithZero() throws DivisionException {
		_result = testee().division(20d, 0d);
		Assert.assertNull(_result);
	}
	
	private Calculator testee() {
		return new Calculator();
	}
}
	

Top


Example
Sitemap Kontakt Impressum