JUnit
![]() | Nem tévesztendő össze a következővel: Eszna (ókori neve Junit). |
JUnit | |
![]() | |
Fejlesztő | Kent Beck, Erich Gamma, David Saff |
Legfrissebb stabil kiadás | 5.11.0 (stabil verzió, 2024. augusztus 14.)[1] |
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 |
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 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.[2] 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égehajtandó 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 Archiválva 2011. szeptember 27-i dátummal a Wayback Machine-ben)
- 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
- ↑ Release 5.11.0, 2024. augusztus 14. (Hozzáférés: 2024. augusztus 22.)
- ↑ Kent Beck, Erich Gamma: JUnit Cookbook. junit.sourceforge.net. [2020. június 15-i dátummal az eredetiből archiválva]. (Hozzáférés: 2011. május 21.)
További információk
- JUnit home page
- JUnit antipatterns (developerWorks) and JUnit antipatterns (Exubero)
- An early look at JUnit 4
- JUnit Presentation
- JUnits
Informatikai portál • összefoglaló, színes tartalomajánló lap