TestSuite in Junit 4
Mit einer TestSuite können einzelne Testklassen zusammengefasst werden. Einzelne Tests können gemeinsam durchgeführt werden und andere nicht. Dadurch ist es möglich das Testen besser zu strukturieren. Zusammgengehörige Testfälle können gruppiert werden und durch einen Klick ausgeführt werden.Einführendes Beispiel in TestSuites
In dem vorliegendem Beispiel werden die einzelnen Methoden (Plus, Minus, Mal, Verdopple) einer Klasse Rechner getestet. Durch das Zusammenfassen der Plus und Minus- Tests in eine eigene TestSuite(namens: PlusUndMinusTestSuite), können diese gleichzeitig mit einem Knopfdruck auf “Run” ausgeführt werden.Projekt zum Download:
Taschenrechner.zip
public class Rechner {
public Rechner() {}
public int plus(int a, int b){
return a + b;
}
public int minus(int a, int b){
return a - b;
}
public int mal(int a, int b){
return a*b;
}
public int verdopple(int a){
return a*2;
}
}
}
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class RechnerTestMal {
@Before
public void setUp(){
Rechner r = new Rechner();
}
@Test
public void testMal1() {
Assert.assertTrue(r.mal(5,2)==10);
}
@Test
public void testMal2() {
Assert.assertTrue(r.mal(2,4)==8);
}
@Test
public void testMal3() {
Assert.assertTrue(r.mal(10,3)==30);
}
}
Diese beinhaltet einige Tests die die Methode Mal auf Korrektheit überpfrüfen.
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({RechnerTestMal.class, RechnerTestVerdopple.class})
public class malUndVerdoppleTestSuite {
}
Es ist auch möglich eine übergeordnete TestSuite zu erstellen die aus andere Testsuites besteht.
Die Testsuite AllesTestSuite.java besteht aus den beiden oben erstellten TestSuites
malUndVerdoppleTestSuite, plusUndMinusTestSuite
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({malUndVerdoppleTestSuite.class, plusUndMinusTestSuite.class})
public class AllesTestSuite {
}
Wird AllesTestSuite.java ausgeführt, werden alle im Beispiel erstellten Tests ausgeführt.