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 3.8-as ill. korábbi verzióiban a junit.framework alatt találhatók JUnit 4-es ill. későbbi verzióiban org.junit alatt találhatók
Példa egy JUnit tesztre Egy 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
Portolás más nyelvekre 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: ActionScript (FlexUnit ) Ada (AUnit ) C (CUnit) C# (NUnit) C++ (CPPUnit2) Fortran (fUnit) Delphi (DUnit) Pascal (programozási nyelv) (FPCUnit) JavaScript (JSUnit) Objective-C (OCUnit) Perl (Test::Class és Test::Unit) PHP (PHPUnit) Python (PyUnit) R (RUnit) Haskell (HUnit) Qt (QTestLib)
Kapcsolódó szócikkek Mock objektum TestNG, a JUnit egy alternatívája
Jegyzetek
További információk JUnit home page JUnit antipatterns (developerWorks) and JUnit antipatterns (Exubero) An early look at JUnit 4 JUnit Presentation JUnits
Kategória:Java API-k Kategória:SourceForge projektek Kategória:Egységteszt-keretrendszerek