Ignorovanie testovacích prípadov JUnit: JUnit 4 @Ignore Vs JUnit 5 @Disabled

Tento tutoriál vysvetľuje, ako ignorovať testovacie prípady v JUnit s príkladmi. Naučíte sa používať @Ignore v JUnit 4 & @Disabled Annotation v JUnit 5:

V predchádzajúcom tutoriáli sme pochopili, čo je API s názvom Annotation, čo robí a videli sme aj základné príklady, ako používať anotácie životného cyklu, aké priority majú pri vykonávaní testovacieho prípadu.

Pokúsme sa objasniť situácie, keď potrebujete nie spustiť alebo nie predpokladaný na spustenie všetkých testovacích prípadov. Naučíme sa ignorovať testovacie prípady v JUnit.

Ignorovanie testovacích prípadov JUnit

Môžu existovať určité testovacie prípady, ktoré sa nespustia, pretože sa nemusia týkať určitých zmien v kóde alebo kód pre testovacie prípady môže byť ešte vo vývoji, takže sa ich spusteniu vyhneme.

V takýchto prípadoch môžeme potrebovať spustiť sadu testovacích prípadov s vynechaním niekoľkých ďalších. Čo nám teda JUnit 4, ako aj JUnit 5, poskytuje, aby sme mohli spustiť len niekoľko testovacích prípadov a zároveň ignorovať, vypnúť alebo nazvať "preskočiť" niekoľko testovacích prípadov?

Našťastie máme @Ignore anotácia pre JUnit 4 na preskočenie testovacieho prípadu, zatiaľ čo @Disabled anotácia pre JUnit 5 urobiť to isté.

JUnit 4 - Anotácia @Ignore

  • Anotácia @Ignore v JUnit 4 môže byť použitá pre testovaciu metódu, aby sa preskočilo jej vykonanie. V tomto prípade musíte použiť @Ignore s anotáciou @Test pre testovaciu metódu, ktorú chcete preskočiť.
  • Anotáciu možno použiť aj na triedu testu, aby sa vynechali všetky testovacie prípady v rámci triedy. V tomto prípade je potrebné použiť @Ignore na úrovni triedy.

Aby kód fungoval, je potrebné importovať balík org.junit.Ignore. Ukážeme si, ako preskočiť testovaciu metódu v teste JUnit 4. Upravíme JUnitProgram.java tak, aby sme preskočili prvú testovaciu metódu.

Úryvok kódu je nasledovný:

 @Ignore @Test public void test_JUnit1() { System.out.println("Toto je testcase test_JUnit1() v tejto triede"); } @Test public void test_JUnit2() { System.out.println("Toto je testcase test_JUnit2() v tejto triede"); } @Test public void test_JUnit3() { System.out.println("Toto je testcase test_JUnit3() v tejto triede"); } 

Pri vykonávaní súboru triedy sa počas vykonávania preskočí metóda test_JUnit1(). Okrem toho sa metóda anotovaná pomocou @Ignore a všetky ostatné testovacie metódy vykonávajú podľa očakávania.

Výsledný Run count ukazuje 3/3 testovacích prípadov a 1 testovací prípad sa zobrazuje ako preskočený. Run count ukázal 3/3, pretože aj preskočený testovací prípad sa pokúsil vykonať.

Nižšie uvedený obrázok okna konzoly dokazuje to isté.

@Ignore Anotácia s parametrom Dôvod

Existuje aj variácia anotácie @Ignore. Anotácia prijíma jediný argument s reťazcovou hodnotou, ktorá je dôvodom vynechania testu.

Ukážme si túto variáciu anotácie @Ignore.

Úryvok kódu je nasledujúci:

 @Ignore("testcase je vo vývoji") @Test public void test_JUnit1() { System.out.println("Toto je testcase test_JUnit1() v tejto triede"); } 

V okne konzoly sa zobrazí rovnaký výsledok ako bez dôvodu odovzdaného anotácii @Ignore.

Teraz sa pozrieme, ako by sa dali vypnúť všetky testy patriace do triedy. Teraz aktualizujeme anotáciu @Ignore na úrovni triedy pre JUnitProgram.java

Úryvok kódu je uvedený nižšie:

 import org.junit.AfterClass; @Ignore("testovací prípad je vo vývoji") public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println("Toto je metóda preClass(), ktorá sa spustí jedenkrát pred triedou"); } @Before public void setUp() { System.out.println("_______________________________________________________\n"); System.out.println("Toto je metóda setUp(), ktorása spustí pred každým testcase"); } @Test public void test_JUnit1() { System.out.println("Toto je testcase test_JUnit1() v tejto triede"); } 

Po spustení súboru triedy sa konzola zobrazuje nič, a Spustiť počítať na karte JUnit zobrazuje 1 trieda vynechaná z 1 hodiny .

Nižšie je zobrazený obrázok okna konzoly:

JUnit 5 - Anotácia @Disabled

Anotácia @Disabled v JUnit 5 funguje podobne ako anotácia @Ignore v JUnit 4.

  • Vykonávanie testovacej metódy alebo skupiny testov môžete zakázať alebo vynechať použitím anotácie na úrovni Test.
  • Alebo by sa všetky testy mohli preskočiť použitím anotácie @Disabled na úrovni triedy namiesto jej použitia na úrovni testovacej metódy.

Podobne ako v prípade @Ignore, aj v prípade @Disabled by sa mohol odovzdať dôvod, aby každý vývojár alebo obchodný analytik vedel, prečo bol konkrétny testovací prípad vynechaný. Parameter zostáva nepovinný rovnako ako v prípade @Ignore.

( Poznámka: Anotáciu @Disabled nebudeme demonštrovať na skutočnom kóde, aby sme sa vyhli opakovaniu, pretože v JUnit 4 sa postupuje presne podľa vzoru @Ignore.)

Jediný rozdiel, ktorý budete pozorovať v prípade @Ignore Vs @Disabled je, že keď je anotácia použitá na úrovni triedy, po vykonaní súboru triedy JUnit, počet spustení v prípade JUnit 4 , zobrazuje 1/1 vynechanej triedy.

Preto a je uvedený počet vynechaných tried keďže v prípade JUnit 5 ukazuje, že 3/3 testovacích prípadov sú preskočené vzhľadom na to, že boli vynechané tri testovacie metódy z celkového počtu troch testovacích metód v triede.

Preto na viditeľnosť počtu vynechaných testovacích prípadov , JUnit 5 robí mierne lepšie v porovnaní s JUnit 4.

Záver

V tomto tutoriáli sme sa dozvedeli, aké sú situácie, kedy môžeme potrebovať preskočiť vykonanie niekoľkých testovacích prípadov. Tiež sme sa naučili, ako preskočiť niektoré testovacie prípady v JUnit 4 aj v JUnit 5.

Posunúť hore