How To write JUnit Tests
aus AlricgWiki, der freien Wissensdatenbank
Vorsicht, die Infos beziehen sich auf JUnit 3.8. Wie benutzen inzwischen JUnit 4.1. Infos sind zu finden unter:
JUnit Home
Umfassende Info zu JUnit mit Doku, JavaDoc, Extensions, etc. findet sich unter: http://junit.org/
Teststruktur
- 1. In jedem package (im Source-Ordner test) gibt es eine Test-Klasse AllTests.
In AllTests, gibt es nur eine suite() Methode in der alle, in diesem package zu testenden Klassen aufgelistet sind. Das ganze sieht dann etwa folgendermaßen aus:
package org.d3s.alricg.mypackage;
public class AllPackagesTests extends TestCase {
public static Test suite() {
TestSuite testSuite = new TestSuite("All Tests for org.d3s.alricg.mypackage");
testSuite.addTestSuite(org.d3s.alricg.mypackage.MyClass1Test.class);
// ....
testSuite.addTestSuite(org.d3s.alricg.mypackage.MyClassZTest.class);
return testSuite;
}
}
- 2. Diese AllTests Klassen wiederum werden von org.d3s.alricg.AllPackageTests aufgerufen (wieder im test-Ordner):
package org.d3s.alricg;
public class AllPackageTests extends TestCase {
public static Test suite() {
TestSuite testSuite = new TestSuite("All Tests for Alricg");
testSuite.addTest(org.d3s.alricg.AllTests.suite());
testSuite.addTest(org.d3s.alricg.controller.AllTests.suite());
testSuite.addTest(org.d3s.alricg.prozessor.AllTests.suite());
testSuite.addTest(org.d3s.alricg.prozessor.generierung.AllTests.suite());
testSuite.addTest(org.d3s.alricg.sonderregeln.AllTests.suite());
testSuite.addTest(org.d3s.alricg.store.AllTests.suite());
testSuite.addTest(org.d3s.alricg.store.xom.AllTests.suite());
testSuite.addTest(org.d3s.alricg.store.xom.map.AllTests.suite());
//...
testSuite.addTest(org.d3s.alricg.mypackage.AllTests.suite());
return testSuite;
}
}
Vorgehen
- 1. Testklassen liegen im Source-Ordner test, nicht in src!
- 2. Testklassen für package org.d3s.alricg.xyz schreiben (zu viele gibt es nicht!)
- 3. org.d3s.alricg.xyz.AllTests anlegen und die Testklassen in der suite()-Methode aufzählen.
- 4. org.d3s.alricg.xyz.AllTests in org.d3s.alricg.AllPackageTests.suite() eintragen.
