Mi a JUnit kommentárok?
A JUNIT ANNOTATIONS a szintaktikus metaadatok speciális formája, amely hozzáadható a Java forráskódjához a jobb olvashatóság és struktúra érdekében. A változók, paraméterek, csomagok, módszerek és osztályok feljegyezhetők. A Junit4-ben bevezették a kommentárokat, amelyek a Java kódot olvashatóbbá és egyszerűbbé teszik. Ez az a nagy különbség a Junit3 és a Junit4 között, hogy a Junit4 annotáción alapszik.
A Junit5 annotációinak ismeretében könnyen megtanulhatja és megvalósíthatja a JUnit tesztet. Az alábbiakban felsoroljuk a fontos és gyakran használt kommentárokat:
S.No. | Megjegyzések | Leírás |
---|---|---|
1. | @Teszt | Ez a megjegyzés az org.junit.TestCase cseréje, amely jelzi, hogy a public void módszer, amelyhez csatolva, tesztesetként futtatható. |
2. | @Előtt | Ezt a kommentárt akkor használják, ha minden teszteset előtt végrehajtani akar egy állítást, például előfeltételeket. |
3. | @Óra előtt | Ezt a jegyzetet akkor kell használni, ha néhány utasítást szeretne végrehajtani, mielőtt az összes tesztesetet (pl. Tesztkapcsolat) az összes teszteset előtt végre kell hajtani. |
4. | @Után | Ez a megjegyzés akkor használható, ha minden teszteset után néhány utasítást szeretne végrehajtani, például a változók alaphelyzetbe állításához, ideiglenes fájlok, változók törléséhez stb. |
5. | @Óra után | Ez a megjegyzés akkor használható, ha néhány állítást az összes teszteset után végre akar hajtani, például erőforrások felszabadítása az összes tesztesemény végrehajtása után. |
6. | @ Nem vesz tudomást | Ez a megjegyzés akkor használható, ha a teszt végrehajtása során figyelmen kívül akar hagyni egyes utasításokat, például egyes tesztesetek letiltását a teszt végrehajtása során. |
7. | @Test (időtúllépés = 500) | Ez a megjegyzés akkor használható, ha a teszt végrehajtása során szeretne beállítani egy időkorlátot, például, ha valamilyen SLA (Service level Agreement) alapján dolgozik, és a teszteket meghatározott időn belül be kell fejezni. |
8. | @Test (várható = IllegalArgumentException.class) | Ez a megjegyzés akkor használható, ha a teszt végrehajtása során valamilyen kivételt szeretne kezelni. Például, ha azt szeretné ellenőrizni, hogy egy adott módszer megad-e meghatározott kivételt vagy sem. |
Ebben az oktatóanyagban megtanulja-
- Példa JUnit kommentárokra
- JUnit Assert osztály
- JUnit tesztesetek osztály
- JUnit TestResult osztály
- JUnit Test Suite osztály
Példa JUnit kommentárokra
Hozzunk létre egy osztályt, amely egyszerű nyomtatott utasításokkal lefedi a fontos JUnit kommentárokat, és futtassuk le egy teszt futtató osztállyal:
1. lépés: Fontolja meg a java osztályt, amelynek különböző módszerei vannak a fent felsorolt kommentárokhoz csatolva:
JunitAnnotationsExample.java
csomag guru99.junit;statikus org.junit.Assert.assertEquals importálása;import statikus org.junit.Assert.assertFalse;import java.util.ArrayList;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Ignore;import org.junit.Test;nyilvános osztály JunitAnnotationsExample {privát ArrayListlista;@Óra előttpublic static void m1 () {System.out.println ("A @BeforeClass használatával, minden teszteset előtt végrehajtva");}@Előttpublic void m2 () {list = new ArrayList ();System.out.println ("Az @Before kommentárok használata, minden tesztesemény előtt végrehajtva");}@Óra utánpublic static void m3 () {System.out.println ("A @AfterClass használata, minden teszteset után végrehajtva");}@Utánpublic void m4 () {list.clear ();System.out.println ("A @After használata, minden teszteset után végrehajtva");}@Tesztpublic void m5 () {list.add ("teszt");assertFalse (list.isEmpty ());assertEquals (1, list.size ());}@Figyelmen kívül hagynipublic void m6 () {System.out.println ("Az @Ignore használatával ezt a végrehajtást figyelmen kívül hagyjuk");}@Test (időtúllépés = 10)public void m7 () {System.out.println ("A @Test (timeout) használatával a timeout kikényszerítésére használható a JUnit4 tesztesetben");}@Test (várható = NoSuchMethodException.class)public void m8 () {System.out.println ("A @Test (várható) használatával a kivitel során ellenőrizni fogja a meghatározott kivételeket");}}
2. lépés : Hozzunk létre egy teszt futó osztályt a fenti teszt végrehajtásához:
TestRunner.java
csomag guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;nyilvános osztály TestRunner {public static void main (String [] érvel) {Eredmény eredménye = JUnitCore.runClasses (JunitAnnotationsExample.class);for (Hiba hiba: result.getFailures ()) {System.out.println (fail.String ());}System.out.println ("Result ==" + result.wasSuccessful ());}}
Várható eredmény
- Az összes tesztesetet egyenként hajtják végre, és az összes nyomtatott utasítás látható a konzolon.
- Amint azt a fenti @Before táblázat tárgyalja, a @BeforeClass [m1 () és m2 ()] módszert minden tesztesemény előtt, ill.
- Ugyanígy a @ utána, az @ utóosztály (metódus m3 () és az m4 () metódus) minden teszteset után, illetve az összes teszteset után végrehajtásra kerül. A @ignore (m6 () módszer) a teszt figyelmen kívül hagyásaként kezelendő.
Elemezzük részletesen a fenti java osztályban használt teszteseteket:
- Vegye figyelembe az m5 () módszert az alábbiak szerint:
@Tesztpublic void m5 () {list.add ("teszt");assertFalse (list.isEmpty ());assertEquals (1, list.size ());}
A fenti módszerben, amikor hozzáad egy karakterláncot a "list" változóhoz, így
- A list.isEmpty () hamis értéket ad vissza.
- Az assertFalse (list.isEmpty ()) true értéket kell adnia.
- Ennek eredményeként a teszteset átmegy .
Mivel csak egy karakterláncot adott hozzá a listához, a méret egy.
- A list.size () értékének vissza kell adnia az int értékét "1" -ként.
- Tehát az assertEquals (1, list.size ()) -nek igaznak kell lennie.
- Ennek eredményeként a teszteset átmegy .
- Tekintsük az m7 () módszert az alábbiak szerint:
@Test (időtúllépés = 10)public void m7 () {System.out.println ("A @Test (timeout) használatával a timeout kikényszerítésére használható a JUnit4 tesztesetben");}
Amint azt fentebb tárgyaltuk, a @Test (időtúllépés = 10) jelölést használjuk az időtúllépés érvényesítésére a tesztesetben.
- Tekintsük az m8 () módszert az alábbiak szerint:
@Test (várható = NoSuchMethodException.class)public void m8 () {System.out.println ("A @Test (várható) használatával a kivitel során ellenőrizni fogja a meghatározott kivételeket");}
Amint azt fentebb tárgyaltuk, a @Test (várható) a végrehajtása során ellenőrzi a megadott kivételeket, így az m8 () metódus "Nincs ilyen kivétel". Ennek eredményeként a teszt kivétellel végrehajtásra kerül.
Mivel minden teszteset sikeresen teljesül, ez sikeres tesztfuttatást eredményez.
Tényleges eredmény
Mivel a fenti példában három teszteset van, az összes tesztesetet egyenként hajtják végre. Lásd az alábbi kimenetet :
Lásd az alábbiakban a konzolon látható nyomtatott utasításokat:
A @BeforeClass használatával, minden teszteset előtt végrehajtva
A @Before kommentárok használatával, minden tesztesemény előtt végrehajtva
A @After használatával, minden teszteset után végrehajtva
A @Before kommentárok használatával, minden tesztesemény előtt végrehajtva
A @Test (timeout) használatával az időtúllépés kikényszerítésére használható a JUnit4 tesztesetben
A @After használatával, minden teszteset után végrehajtva
A @Before kommentárok használatával, minden tesztesemény előtt végrehajtva
A @Test (várható) használatával a kivitel során ellenőrizni fogja a megadott kivételeket
A @After használatával, minden teszteset után végrehajtva
A @AfterClass használatával, minden teszteset után végrehajtva
JUnit Assert osztály
Ez az osztály egy csomó állítási módszert kínál, amelyek hasznosak egy teszteset megírásához. Ha minden állítás sikeres, akkor a teszt eredményei sikeresek. Ha bármely állítás meghiúsul, a teszt eredményei sikertelenek.
Mint korábban látta, az alábbi táblázat fontos Assert módszereket és leírást ismertet:
S.No. | Módszer | Leírás |
---|---|---|
1. | void assertEquals (logikai várható, logikai aktuális) | Ellenőrzi, hogy két érték egyenlő-e az Object class egyenlő módszerével |
2. | void assertFalse (logikai feltétel) | A funkció annak ellenőrzése, hogy egy feltétel hamis-e. |
3. | void assertNotNull (Objektum objektum) | Az "assertNotNull" funkcióval ellenőrizni kell, hogy egy objektum nem null-e. |
4. | void assertNull (objektum objektum) | Az "assertNull" funkcióval ellenőrizni kell, hogy egy objektum null. |
5. | void assertTrue (logikai feltétel) | Az "assertTrue" funkcióval ellenőrizni kell, hogy egy feltétel igaz-e. |
6. | void fail () | Ha bármilyen állítási hibát szeretne dobni, akkor a fail () van, amely mindig kudarcos ítéletet eredményez. |
7. | void assertSame ([karakterlánc üzenet] | Az "assertSame" funkció annak ellenőrzése, hogy a két objektum ugyanarra az objektumra vonatkozik-e. |
8. | void assertNotSame ([karakterlánc-üzenet] | Az "assertNotSame" funkció annak ellenőrzése, hogy a két objektum nem ugyanarra az objektumra vonatkozik-e. |
JUnit tesztesetek osztály
Több teszt futtatásához a TestCase osztály elérhető az org.junit.TestCase csomagokban. A @Test kommentár elmondja a JUnit-nek, hogy ez a public void módszer (itt a Test Case), amelyhez kapcsolódik, tesztesetként futtatható.
Az alábbi táblázat néhány fontos módszert mutat be az org.junit.TestCase osztályban:
S.No. | Módszer | Leírás |
---|---|---|
1. | int countTestCases () | Ezt a módszert arra használják, hogy megszámolja, hány tesztesetet hajtottak végre futtatással (TestResult tr) . |
2. | TestResult createResult () | Ezt a módszert használják egy TestResult objektum létrehozására . |
3. | Karakterlánc getName () | Ez a módszer egy stringet ad vissza, amely nem más, mint egy TestCase . |
4. | TestResult run () | Ezzel a módszerrel olyan tesztet lehet végrehajtani, amely egy TestResult objektumot ad vissza |
5. | void run (TestResult eredmény) | Ezzel a módszerrel olyan tesztet lehet végrehajtani, amelynek olyan TestResult objektuma van, amely nem ad semmit. |
6. | void setName (karakterlánc neve) | Ezt a módszert használják a TestCase nevének beállításához . |
7. | void setUp () | Ezzel a módszerrel erőforrás-társítási kódot írnak. pl. Hozzon létre egy adatbázis-kapcsolatot. |
8. | void tearDown () | Ezt a módszert használják az erőforrás kiadási kód írására. pl. az adatbázis-kapcsolat feloldása a tranzakciós művelet elvégzése után. |
JUnit TestResult osztály
Teszt végrehajtásakor eredményt ad vissza ( TestResult objektum formájában ). Ez a TestResult objektum felhasználható a kapott objektum elemzésére. Ez a teszt eredmény lehet sikertelen vagy sikeres. Az alábbi táblázatban láthatja az org.junit.TestResult osztályban alkalmazott fontos módszereket:S.No. | Módszer | Leírás |
---|---|---|
1. | void addError (teszt teszt, dobható t) | Ezt a módszert akkor alkalmazzák, ha hibát kell hozzáadni a teszthez. |
2. | void addFailure (Teszt, AssertionFailedError t) | Ezt a módszert akkor alkalmazzák, ha meg kell adni egy hibát a hibák listájához. |
3. | void endTest (teszt teszt) | Ezt a módszert arra használják, hogy értesítsék a teszt elvégzéséről (befejezve) |
4. | int errorCount () | Ezt a módszert használják a teszt végrehajtása során észlelt hiba megszerzésére. |
5. | Felsorolás | Ez a módszer egyszerűen visszaadja a hibák gyűjteményét (itt soroljuk fel). |
6. | int FailCount () | Ezt a módszert használják a teszt végrehajtása során észlelt hibák számának lekérdezésére. |
7. | void run (TestCase teszt) | Ezt a módszert használják egy teszteset végrehajtására. |
8. | int runCount () | Ez a módszer egyszerűen megszámolja a végrehajtott tesztet. |
9. | void startTest (teszt teszt) | Ezt a módszert használják a teszt elindításának értesítésére. |
10. | érvénytelen stop () | Ezt a módszert használják a leállítandó tesztfuttatásra. |
JUnit Test Suite osztály
Ha több tesztet szeretne végrehajtani meghatározott sorrendben, akkor az úgy történhet, hogy az összes tesztet egy helyen egyesíti. Ezt a helyet nevezzük tesztcsomagoknak.
Az alábbi táblázatban láthatja az org.junit.TestSuite osztályban alkalmazott fontos módszereket :
S.No. | Módszer | Leírás |
---|---|---|
1. | void addTest (teszt teszt) | Ezt a módszert akkor alkalmazzák, ha tesztet akar hozzáadni a csomaghoz. |
2. | void addTestSuite (A osztály kiterjeszti a TestCase> testClass osztályt) | Ezt a módszert akkor használják, ha meg szeretné adni az osztályt, miközben tesztet ad a csomaghoz. |
3. | int countTestCases () | Ezt a módszert akkor alkalmazzák, ha meg akarja számolni a tesztesetek számát. |
4. | Karakterlánc getName () | Ezzel a módszerrel kapják meg a tesztcsomag nevét. |
5. | void run (TestResult eredmény) | Ezt a módszert használják egy teszt végrehajtására és a teszt eredményének összegyűjtésére a TestResult objektumban. |
6. | void setName (karakterlánc neve) | Ezzel a módszerrel állítható be a TestSuite neve . |
7. | Teszt testAt (int index) | Ezt a módszert akkor alkalmazzák, ha a tesztet adott indexben szeretné visszaadni. |
8. | int testCount () | Ezt a módszert akkor alkalmazzák, ha számos tesztet szeretne visszaküldeni a Suite-ban. |
9. | statikus teszt figyelmeztetés (karakterlánc üzenet) | Ez a módszer egy tesztet eredményez, amely sikertelen lesz, és figyelmeztető üzenetet naplóz. |
Összegzés:
- A JUnit egy hordozható API-t biztosít, amely minden fontos osztályt és kommentárt tartalmaz, amelyek hasznosak az egység teszt írásához.
- Osztályok, amelyek nagyon hasznosak egy tesztesemény megírásakor
- org.junit.Assert
- org.junit.TestCase
- org.junit.TestResult
- org.junit.TestSuite
- a fontos és gyakran használt kommentárok listája
@Előtt
@Óra előtt
@Után
@Óra után
@Teszt
@Figyelmen kívül hagyni