Ez a bemutató elmagyarázza, hogyan kell figyelmen kívül hagyni a teszteseteket a JUnit-ban példákkal. Megtanulja használni a @Ignore-t a JUnit 4-ben &; @Disabled Annotation a JUnit 5-ben:
Az előző bemutatóban megismerhettük, hogy mi az az API, amit Annotation-nek hívnak, mit csinál, és láttunk alapvető példákat arra is, hogyan használjuk az életciklus-jegyzeteket, milyen prioritásokat tartanak fenn egy teszteset végrehajtása során.
Próbáljuk meg megvilágítani azokat a helyzeteket, amikor mi szükség van nem futás vagy a nem feltételezett az összes teszteset futtatásához. Megtanuljuk a tesztesetek figyelmen kívül hagyását a JUnitben.
JUnit figyelmen kívül hagyja a teszteseteket
Lehetnek olyan tesztesetek, amelyeket nem futtatunk le, mert nem tartoznak bizonyos kódváltozásokhoz, vagy a tesztesetek kódja még fejlesztés alatt áll, ezért nem futtatjuk le őket.
Ilyen esetekben szükségünk lehet arra, hogy egy sor teszteset futtatásához néhány másikat kihagyjunk. Mi az, amit a JUnit 4, valamint a JUnit 5 biztosít számunkra, hogy csak néhány teszteset futtatására legyünk képesek, miközben néhány teszteset figyelmen kívül hagyjuk vagy letiltjuk, vagy nevezzük "kihagyásnak"?
Szerencsére van @Ignore megjegyzés a JUnit 4 egy teszteset kihagyása, míg @Disabled megjegyzés a JUnit 5 hogy ugyanezt tegyék.
JUnit 4 - @Ignore megjegyzés
- A JUnit 4 @Ignore annotáció alkalmazható egy tesztmódszerre, hogy kihagyja annak végrehajtását. Ebben az esetben a @Ignore megjegyzést a @Test annotációval együtt kell használni a kihagyni kívánt tesztmódszerre.
- Az annotáció a tesztosztályra is alkalmazható, hogy az osztály alatt lévő összes teszteset kihagyható legyen. Ebben az esetben az @Ignore-t kell használni az osztály szintjén.
A kódnak szüksége van az org.junit.Ignore csomag importálására ahhoz, hogy a @Ignore működjön. Mutassuk be, hogyan lehet kihagyni egy tesztmetódust egy JUnit 4 tesztben. Módosítjuk a JUnitProgram.java-t, hogy kihagyjuk az első teszteset metódusát.
A kódrészlet a következő:
@Ignore @Test public void test_JUnit1() { System.out.println("Ez a teszteset test_JUnit1() ebben az osztályban"); } @Test public void test_JUnit2() { System.out.println("Ez a teszteset test_JUnit2() ebben az osztályban"); } @Test public void test_JUnit3() { System.out.println("Ez a teszteset test_JUnit3() ebben az osztályban"); }
Az osztályfájl végrehajtásakor a test_JUnit1() a végrehajtás során kihagyásra kerül. Emellett a @Ignore megjegyzésekkel ellátott metódus és az összes többi tesztmetódus a várt módon fut.
Az eredmény Futtatásszámlálás 3/3 tesztesetet mutat, és 1 tesztesetet kihagyva. A futtatásszámlálás 3/3-at mutatott, mert még a kihagyott teszteset is megpróbálta végrehajtani.
Az alábbi képernyőkép a konzolablakról ugyanezt bizonyítja.
@Ignore megjegyzés egy ok paraméterrel
A @Ignore megjegyzésnek van egy változata is. A megjegyzés egyetlen argumentumot vesz fel egy string értékkel, ami a teszt kihagyásának oka.
Mutassuk be a @Ignore megjegyzés ezen változatát.
A kódrészlet a következő:
@Ignore("a teszteset fejlesztés alatt áll") @Test public void test_JUnit1() { System.out.println("Ez a teszteset test_JUnit1() ebben az osztályban"); }
A konzolablakban ugyanaz az eredmény jelenik meg, mint a @Ignore megjegyzésnek átadott ok nélkül.
Most pedig nézzük meg, hogyan lehet egy osztályhoz tartozó összes tesztet letiltani. Most frissítjük a @Ignore megjegyzést az osztály szintjén a JUnitProgram.java esetében.
A kódrészlet az alábbiakban látható:
import org.junit.AfterClass; @Ignore("a teszteset fejlesztés alatt áll") public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println("Ez a preClass() metódus, amely egyszer fut le az osztály előtt"); } @Before public void setUp() { System.out.println("_______________________________________________________\n"); System.out.println("Ez a setUp() metódus, amely egyszer fut le az osztály előtt").fut minden egyes teszteset előtt"); } @Test public void test_JUnit1() { System.out.println("Ez a teszteset test_JUnit1() ebben az osztályban"); }
Az osztályfájl végrehajtása után a konzol mutatja Semmi, és a Fuss Számolj a JUnit fül alatt a következőket mutatja 1 osztály kihagyott 1 órát .
Az alábbiakban a konzol ablakának képernyőképét láthatja:
JUnit 5 - @Disabled megjegyzés
A @Disabled annotáció a JUnit 5-ben hasonlóan működik, mint a @Ignore annotáció a JUnit 4-ben.
- Egy tesztmódszer vagy tesztek egy csoportjának végrehajtását letilthatja vagy kihagyhatja a teszt szintjén a megjegyzés alkalmazásával.
- Vagy az összes teszt kihagyható, ha a @Disabled megjegyzést az osztály szintjén alkalmazzuk, ahelyett, hogy a tesztmódszer szintjén alkalmaznánk.
A @Ignore-hoz hasonlóan a @Disabled-hez is átadható egy ok, hogy bármely fejlesztő vagy üzleti elemző megtudhassa, miért lett kihagyva egy adott teszteset. A paraméter opcionális marad, akárcsak a @Ignore esetében.
( Megjegyzés: Az ismétlések elkerülése végett nem mutatjuk be a @Disabled megjegyzést egy tényleges kódon keresztül, mivel ez pontosan azt a módszert követi, amit a @Ignore követ a JUnit 4-ben.)
Az egyetlen különbség, amit meg kell figyelni a következők esetében @Ignore Vs @Disabled az, hogy amikor az annotációt osztályszinten alkalmazzák, a JUnit osztályfájl végrehajtása után, a Run count az alábbi esetekben JUnit 4 , 1/1 kihagyott osztályt mutat.
Ezért egy a kihagyott osztályok száma meg van adva mivel a JUnit 5 azt mutatja, hogy 3/3 tesztesetet kihagynak, figyelembe véve, hogy három vizsgálati módszert kihagytak az osztályban található összesen három tesztmódszer közül.
Ezért a a kihagyott tesztesetek számának láthatósága , JUnit 5 egy kissé jobb munka a JUnit 4-hez képest.
Következtetés
Ebben a bemutatóban megtanultuk, hogy melyek azok a helyzetek, amikor szükségünk lehet néhány teszteset végrehajtásának kihagyására. Azt is megtanultuk, hogyan lehet bizonyos teszteseteket kihagyni mind a JUnit 4-ben, mind a JUnit 5-ben.