| JUnit | |
| Fejlesztő | Kent Beck, Erich Gamma, David Saff |
| Legfrissebb stabil kiadás | 6.1.3 (stabil verzió, 2026. augusztus 7.) |
| Programozási nyelv | Java |
| Operációs rendszer | platformfüggetlen |
| Platform | Java virtuális gép |
| Állapot | aktív |
| Kategória | egységtesztek |
| Licenc | Common Public License |
| Kódtár | https://github.com/junit-team/junit-framework |
| A JUnit weboldala | |
A JUnit egy egységteszt-keretrendszer Java programozási nyelvhez. A tesztvezérelt fejlesztés (TDD) szabályai szerint ez annyit tesz, hogy a kód írásával párhuzamosan fejlesztjük a kódot tesztelő osztályokat is (ezek az egységtesztek). Ezeken egységtesztek karbantartására, csoportos futtatására szolgál ez a keretrendszer. A JUnit-teszteket gyakran a build folyamat részeként szokták beépíteni. Pl. napi build-ek esetén ezek a tesztek is lefutnak. A release akkor hibátlan, ha az összes teszt hibátlanul lefut.
A JUnit a egységteszt-keretrendszerek családjába tartozik, melyet összességében xUnit-nak hívunk, amely eredeztethető a SUnitból.
JUnit keretrendszer fizikailag egy JAR fájlba van csomagolva. A keretrendszer osztályai következő csomag alatt található:
junit.framework alatt találhatókorg.junit alatt találhatókEgy tetszőleges nevű tesztosztályban a teszt metódusokat meg kell jelölni a @Test annotációval. Lehetőség van definiálni olyan metódust, amely a teszt előtt (ill. utána) hajtódik végre. Ezeket @Before ill. @After annotációval kell megjelölni. A @BeforeClass annotációval megjelölt metódus az első teszt metódus meghívása előtt lefut, ill. az utolsó teszt metódus végrehajtása után az @AfterClass annotációval megjelölt metódus fut le. Az @Ignore annotációval megjelölt teszt nem fut le a teszt osztály futtatása során. Lehetőség van időtúllépést megadni ezredmásodpercben, pl. @Test(timeout=1000). Amennyiben a megadott időkeretet túllépi a teszt, a futása meg fog szakadni és Exception fog kiváltódni.
import org.junit.*;
public class TestFoobar {
@BeforeClass
public static void setUpClass() throws Exception {
// első test metódus előtt végrehajtandó kód
}
@AfterClass
public static void tearDownClass() throws Exception {
// az utolsó test metódus után végrehajtandó kód
}
@Test(timeout=1000)
public void testOneThing() {
// egy dolog tesztelésére szolgáló kód - időtullépés megadásával
}
@Test
public void testAnotherThing() {
// másik dolog tesztelésére szolgáló kód
}
@Test
public void testSomethingElse() {
// egyéb másik dolog tesztelésére szolgáló kód
}
@Ignore
public void testSomethingElse() {
// egyéb másik dolog tesztelésére szolgáló kód - nem fog végrehajtódni
}
@Before
public void setUp() throws Exception {
// minden test előtt végrehajtandó metódus
}
@After
public void tearDown() throws Exception {
// minden test után végrehajtandó metódus
}
}
JUnit-ot alapul véve más programozási nyelvekre is megírták (portolták) ezt az egységteszt-keretrendszert. Ezek a következő nyelvek ill. keretrendszerek: