A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust, amelynek működése nem triviális Ezen tesztek lefutása egymástól független, lehetőleg más személy készíti el, mint az implementációt Ezt követi az integrációs- és rendszerteszt
Folyamatos kiírások, System.out.println() Egyszerű, nem igényel futtatókörnyezetet, külön jar-t Teleszemeteli a forráskódot Hosszú, átláthatatlan kimenet Manuális ellenőrzés szükséges a program minden lefutása esetén
Debugger IDE támogatással, minden változó értéke kiolvasható A kód minden változtatása, javítása után lépésről lépésre végig kell haladni Manuálisan kell összehasonlítani itt is a kapott értékeket az elvártakkal
A JAR fájl legfrissebb változata letölthető: http://sourceforge.net/projects/junit/files/ Hozzá kell adni a classpath-hoz set CLASSPATH=%CLASSPATH%;%JUNIT_HO ME%\junit.jar
Eclipse-ben, Netbeansben beépített támogatás Külön hozzáadási lehetőség New/JUnit TestCase Külön futtatási beállítás
Teszt készítése @Test annotácó jelzi a tesztmetódust, pl.:
Konvenciók (nem szükséges): test mappában a teszt forráskódja Azonos package-ben mint a tesztelendő osztály Egy osztály metódusait közös osztályban teszteljük test... elnevezésű metódusok
@Test public void addTest() { BigInteger a = new BigInteger(„11”); BigInteger b = new BigInteger(„42”); BigInteger c = a.add(b); assertTrue(c.toString().equals(„53”)); }
Assert osztály assertEquals([String message,] ? expected, ? actual)
org.junit.Assert osztály Tipikusan statikusan importálva assertTrue(boolean bool) Emellett rengeteg másik függvény (~50) Opcionális String paraméter: hibaüzenet
assertArrayEquals([String message,] ?[] expected, ?[] actual) Opcionális hibaüzenet ? helyén állhat tetszőleges primitív típus és Object float/double esetén érdemes megadni egy ε paramétert is
Fontos a keletkező kivételek tesztelése is Első módszer: try-catch- assert: kivétel típusára, message-ére, stb. Másik módszer: opcionális paraméter @Test annotációhoz: @Test (expected=IndexOutOfBoundsException.class) public void empty() { new ArrayList