A Testng és a Junit egyaránt az egység teszteléséhez használt tesztelési keretrendszer. A TestNG hasonló a JUnithez. Kevés olyan funkcióval bővül, amely a TestNG-t erősebbé teszi, mint a JUnit.
Ez az oktatóanyag elsősorban a JUnit és a TestNG szolgáltatásainak elemzésére összpontosít. Segít a fejlesztőknek eldönteni, hogy melyik keretet kell használni az egység teszteléséhez. Először elemezzük a TestNG és a JUnit4 közötti hasonlóságokat.
A TestNG egy tesztelési keretrendszer, amelyet a JUnit és a NUnit ihletett.
Itt található a táblázat, amely bemutatja a JUnit és a TestNG által támogatott szolgáltatásokat.
JUnit4 és TestNG Feature összehasonlítás
A TestNG és a JUnit4 is hasonlóan néz ki, kivéve egy vagy két funkciót. Vessünk egy összehasonlítást a kettő között, hogy gyorsan eldönthessük, melyik technológia előnyösebb az egység tesztelése szempontjából. Az alábbi táblázat a mindkettő által támogatott funkciókat emeli ki:
Megjegyzések
A JUnit és a TestNG is használ feliratozásokat, és szinte az összes feljegyzés hasonlónak tűnik.
A TestNG a @BeforeMethod-ot, a @Before-hoz hasonló @ AfterMethod-ot használja a JUnit4-ben.
A TestNG és a Junit4 is @Test (timeout = 1000) időtúllépéshez használ. További részletekért ellenőrizze az alábbi táblázatot-
SN | Leírás | TestNG | JUnit 4 |
---|---|---|---|
1 | Tesztjegyzet | @Teszt | @Teszt |
2 | Mielőtt végrehajtaná az első vizsgálati módszert az aktuális osztályban | @Óra előtt | @Óra előtt |
3 | Az aktuális osztály összes tesztmódszere után végrehajtja | @Óra után | @Óra után |
4 | Minden vizsgálati módszer előtt végrehajt | @BeforeMethod | @Előtt |
5. | Minden vizsgálati módszer után végrehajtódik | @AfterMethod | @Után |
6. | jelölés a teszt figyelmen kívül hagyásához | @Test (engedély = hamis) | @figyelmen kívül hagyni |
7 | felirat a kivételhez | @Test (várhatóExceptions = ArithmeticException.class) | @Test (várható = ArithmeticException.class) |
8. | időtúllépés | @Test (időtúllépés = 1000) | @Test (időtúllépés = 1000) |
9. | A csomag minden tesztje előtt végrehajtja | @BeforeSuite | n / a |
10. | A csomagban végzett összes teszt után végrehajtódik | @AfterSuite | n / a |
11. | A teszt futtatása előtt hajt végre | @BeforeTest | n / a |
12. | A teszt futtatása után hajt végre | @AfterTest | n / a |
13. | Az első vizsgálati módszer meghívása előtt hajt végre, amely ezen csoportok bármelyikéhez tartozik | @BeforeGroups | n / a |
14 | futtassa az utolsó vizsgálati módszer után, amely bármelyik csoportba tartozik | @AfterGroups | n / a |
Suite Test
A csomagokat több teszt együttes végrehajtására használják. A csomagok a TestNG és a JUnit4 segítségével egyaránt létrehozhatók. A lakosztályok azonban erőteljesebbek a TestNG-ben, mivel nagyon különböző módszert használ a tesztek végrehajtására. Értsük meg az alábbi kódrészlettel:
A JUnit4 használata
Az osztály alatt a csomag használatát ismertetjük a JUnit4 használatakor:
csomag guru99.junit;import org.junit.runner.RunWith;import org.junit.runners.Suite;@RunWith (Suite.class)@ Suite.SuiteClasses ({SuiteTest1.class,SuiteTest2.class,})nyilvános osztály JunitTest {// Ez az osztály üres marad, csak a fenti kommentárok tulajdonosaként használható}
A TestNG használata
A TestNG az xml-t használja az összes teszt egy csomagba csomagolásához. Az xml alatt leírja a csomag használatát, amikor a TestNG-vel dolgozik:
A teszt figyelmen kívül hagyása
Mindkettő használatával kihagyhatunk egy tesztet. Nézzük meg az alábbi kódpéldával:
A JUnit4 használata
Az alábbi kódrészlet a @ignore kommentár használatát írja le a JUnit4 használatakor:
@Figyelmen kívül hagynipublic void method1 (){System.out.println ("Az @Ignore használatával ezt a végrehajtást figyelmen kívül hagyjuk");}
A TestNG használata
Az alábbi kódrészlet a @Test (enabled = false) felirat használatát írja le a TestNG használatakor:
@Test (engedélyezve = hamis)public void TestWithException (){System.out.println ("A módszert figyelmen kívül kell hagyni, mert még nem áll készen");}
Kivétel teszt
Kivételes tesztelés mind a TestNG, mind a JUnit4 verzióban elérhető. Ellenőrzésére szolgál, melyik kivételt dobják ki a tesztből?
A JUnit4 használata
Az alábbi kódrészlet a kivétel teszt használatát írja le a JUnit4 használatakor:
@Test (várható = ArithmeticException.class)public void divideByZero (){Int i = 1/0;}
A TestNG használata
Az alábbi kódrészlet a kivétel teszt használatát írja le a TestNG használatakor:
@Test (várhatóExceptions = ArithmeticException.class)public void divideByZero (){Int i = 1/0;}
Időtúllépés
Ez a szolgáltatás a TestNg és a JUnit4 programokban egyaránt megvalósításra kerül. Az időtúllépés a megadott időnél (milliszekundumokban) hosszabb ideig tartó teszt befejezésére szolgál.
A JUnit4 használata
Az alábbi kódrészlet az időkorlát teszt használatát írja le a JUnit4 használatakor:
@Test (időtúllépés = 1000)public void method1 (){míg (igaz);}
A TestNG használata
Az alábbi kódrészlet az időtúllépés-teszt használatát írja le a TestNG használatakor:
@Test (timeOut = 1000)public void method1 (){míg (igaz);}
Paraméteres teszt
A JUnit könnyebb és olvashatóbb megközelítést nyújt a tesztnek, amelyet Parameterizált tesztnek neveznek. A TestNG és a JUnit egyaránt támogatja a paraméterezett tesztet, de különböznek a paraméter értékének meghatározásában. Hadd lássa ezt egyenként.
A JUnit4 használata
A "@RunWith" és a "@Parameter" kommentárok szolgálnak az egység teszt paraméterértékének megadására. A @Parameters kommentárnak vissza kell adnia a Lista [] értéket. Ez a paraméter argumentumként átkerül az osztály konstruktorába.
@RunWith (érték = Parameterized.class)nyilvános osztály JunitTest {privateint szám;nyilvános JunitTest6 (int szám){ez.szám = szám;}@Paramétereknyilvános statikus Gyűjtemény
A TestNG használata
A TestNG-ben az XML fájlt vagy a "@DataProvider" paramétert adják meg a teszteléshez.
Itt a metódusban deklarált @Parameters kommentárnak szüksége van egy paraméterre a teszteléshez. A paraméterként használt adatokat a TestNG XML konfigurációs fájljai szolgáltatják. Ezzel egyetlen tesztesetet újra felhasználhatunk különböző adatsorokkal, és különböző eredményeket kaphatunk.
nyilvános osztály teszt1 {@Teszt@Parameters (érték = "szám")public void paraméterTeszt (int szám){System.out.println ("A paraméterezett szám: + szám);}}
Lásd az alábbi xml fájlt, amelyet a fenti osztályhoz használhat:
Összegzés:
Részletesen láttuk a JUnit4 és a TestNG összehasonlítását. Azt is láttuk, hogy mindkettő hasonló, kivéve a paraméterezett tesztet és a függőségi tesztet. Röviden elmondhatjuk, hogy a rugalmasság és az igények alapján bármelyiket választhatjuk az egység teszteléséhez.
- Következő