Šiame vadovėlyje su pavyzdžiais paaiškinama, kaip ignoruoti testavimo atvejus JUnit programoje. Išmoksite naudoti @Ignore JUnit 4 & @Disabled anotaciją JUnit 5 programoje:
Ankstesnėje pamokoje supratome, kas yra API, vadinama anotacija, ką ji daro, taip pat pamatėme pagrindinius pavyzdžius, kaip naudoti gyvavimo ciklo anotacijas, kokius prioritetus jos turi, kai vykdomas testo atvejis.
Pabandykime nušviesti situacijas, kai reikia ne paleisti arba yra ne tariamas paleisti visus testavimo atvejus. Išmoksime ignoruoti testavimo atvejus JUnit programoje.
"JUnit" ignoruoja testavimo atvejus
Gali būti tam tikrų bandymų atvejų, kurių negalima atlikti, nes jie gali būti nesusiję su tam tikrais kodo pakeitimais arba bandymų atvejų kodas gali būti vis dar kuriamas, todėl jų vengiame.
Tokiais atvejais gali prireikti paleisti testavimo atvejų rinkinį, praleidžiant keletą kitų. Taigi, ką "JUnit 4" ir "JUnit 5" suteikia mums, kad galėtume paleisti tik keletą testavimo atvejų, ignoruodami, išjungdami ar vadindami tai "praleidimu" keletą testavimo atvejų?
Laimei, mes turime @Ignore anotacija JUnit 4 praleisti testo atvejį, o @Disabled anotacija "JUnit 5 daryti tą patį.
"JUnit 4" - @Ignore anotacija
- JUnit 4 @Ignore anotacija gali būti taikoma testo metodui, norint praleisti jo vykdymą. Tokiu atveju reikia naudoti @Ignore su @Test anotacija testo metodui, kurį norite praleisti.
- Anotaciją taip pat galima taikyti testo klasei, kad būtų praleisti visi klasės testavimo atvejai. Tokiu atveju klasės lygmeniu reikia naudoti @Ignore.
Kad @Ignore veiktų, reikia importuoti paketą org.junit.Ignore. Parodykime, kaip praleisti testo metodą JUnit 4 teste. Pakeisime JUnitProgram.java, kad praleistume pirmąjį testo metodą.
Kodo fragmentas yra toks:
@Ignore @Test public void test_JUnit1() { System.out.println("Tai yra šios klasės atvejis test_JUnit1()"); } @Test public void test_JUnit2() { System.out.println("Tai yra šios klasės atvejis test_JUnit2()"); } @Test public void test_JUnit3() { System.out.println("Tai yra šios klasės atvejis test_JUnit3()"); } @Test public void test_JUnit3() { System.out.println("Tai yra šios klasės atvejis test_JUnit3()"); }
Vykdant klasės failą, test_JUnit1() praleidžiamas. Be to, metodas, pažymėtas @Ignore, ir visi kiti testavimo metodai vykdomi kaip numatyta.
Rezultate "Run count" (paleidimo atvejų skaičius) rodomi 3/3 bandymų atvejai ir 1 praleistas atvejis. "Run count" (paleidimo atvejų skaičius) rodė 3/3, nes net ir praleistas atvejis buvo bandomas atlikti.
Tą patį įrodo toliau pateiktas konsolės lango ekrano vaizdas.
@Ignore anotacija su priežasties parametru
Yra ir @Ignore anotacijos variantas. Anotacija priima vieną argumentą su eilutės reikšme, kuri yra testo praleidimo priežastis.
Parodykime šį @Ignore anotacijos variantą.
Kodo fragmentas yra toks:
@Ignore("testas yra kuriamas") @Test public void test_JUnit1() { System.out.println("Tai šios klasės testas test_JUnit1()"); }
Konsolės lange rodomas toks pat rezultatas, koks buvo be priežasties, perduotos @Ignore anotacijai.
Dabar pažiūrėkime, kaip galima išjungti visus klasei priklausančius testus. Dabar atnaujinsime @Ignore anotaciją JUnitProgram.java klasės lygmeniu
Kodo fragmentas pateiktas toliau:
import org.junit.AfterClass; @Ignore("bandomasis atvejis kuriamas") public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println("Tai yra preClass() metodas, kuris paleidžiamas vieną kartą prieš klasę"); } @Before public void setUp() { System.out.println("_______________________________________________________\n"); System.out.println("Tai yra setUp() metodas, kurispaleidžiamas prieš kiekvieną testavimo atvejį"); } @Test public void test_JUnit1() { System.out.println("Tai šios klasės testavimo atvejis test_JUnit1()"); }
Įvykdžius klasės failą, konsolė rodo nieko, ir Paleisti skaičiuoti skirtuke JUnit rodoma 1 klasė praleista 1 klasė .
Toliau pateikiamas konsolės lango ekrano vaizdas:
"JUnit 5" - @Disabled anotacija
@Disabled anotacija "JUnit 5" veikia panašiai kaip @Ignore anotacija "JUnit 4".
- Testo metodo arba testų grupės vykdymą galite išjungti arba praleisti taikydami anotaciją Testo lygmeniu.
- Arba visus testus galima praleisti taikant @Disabled anotaciją klasės lygmeniu, o ne testo metodo lygmeniu.
Kaip ir @Ignore, @Disabled atveju taip pat galima nurodyti priežastį, kad programuotojas ar verslo analitikas galėtų sužinoti, kodėl buvo praleistas konkretus bandomasis atvejis. Parametras išlieka neprivalomas, kaip ir @Ignore atveju.
( Pastaba: Mes vengsime demonstruoti @Disabled anotaciją naudodami faktinį kodą, kad išvengtume pasikartojimų, nes ji yra tokia pati kaip @Ignore anotacija JUnit 4.)
Vienintelis skirtumas, kurį pastebėsite @Ignore Vs @Disabled yra tai, kad kai anotacija taikoma klasės lygmeniu, po JUnit klasės failo vykdymo, Run count atveju JUnit 4 , rodo, kad praleista 1/1 klasė.
Taigi a pateikiamas praleidžiamos klasės skaičius kadangi "JUnit 5 rodo, kad 3/3 bandymų atvejų yra praleisti, atsižvelgiant į tai, kad praleisti trys bandymų metodai iš visų trijų klasės testavimo metodų.
Taigi, dėl praleistų testavimo atvejų skaičiaus matomumas , "JUnit 5 daro šiek tiek geriau darbą, palyginti su "JUnit 4".
Išvada
Šioje pamokoje sužinojome, kokiais atvejais gali tekti praleisti kelių testavimo atvejų vykdymą. Taip pat sužinojome, kaip praleisti tam tikrus testavimo atvejus tiek "JUnit 4", tiek "JUnit 5" programose.