Ky tutorial shpjegon se si të injorohen rastet e testimit në JUnit me shembuj. Do të mësoni të përdorni @Ignore në JUnit 4 & @Disabled Annotation në JUnit 5:
Në tutorialin e mëparshëm, ne arritëm të kuptojmë se çfarë është API i quajtur Annotation, çfarë bën dhe pamë gjithashtu shembuj bazë se si të përdorim shënimet e ciklit jetësor, prioritetet që ata mbajeni kur ekzekutohet një rast testimi.
Le të përpiqemi të hedhim dritë mbi situatat kur ne duhet nuk të ekzekutojmë ose jemi nuk supozohet të ekzekutojë të gjitha rastet e testimit. Ne do të mësojmë t'i shpërfillim rastet e testimit në JUnit.
JUnit Injoroni rastet e testimit
Mund të ketë disa raste testimi që nuk zbatohen sepse mund të mos kanë të bëjnë me ndryshime të caktuara të kodit ose kodi për rastet e testimit mund të jetë ende në zhvillim e sipër, kështu që ne shmangim ekzekutimin e tyre.
Në raste të tilla, mund të na duhet të ekzekutojmë një grup rastesh testimi duke kapërcyer disa të tjera . Pra, çfarë është ajo që JUnit 4, si dhe JUnit 5, na ofron në mënyrë që ne të jemi në gjendje të ekzekutojmë vetëm disa raste testimi, ndërsa injorojmë ose çaktivizojmë ose e quajmë atë 'kapërceje' disa nga rastet e testimit?
Fatmirësisht, ne kemi shënimin @Ignore për JUnit 4 për të kapërcyer një rast testimi ndërsa @Disabled shënim për JUnit 5 për të bërë të njëjtën gjë.
JUnit 4 – @Ignore Annotation
- Shënimi JUnit 4 @Ignore mund të aplikohet për një metodë testimi, për të anashkaluar ekzekutimin e saj. Në këtë rast,ju duhet të përdorni @Ignore me shënimin @Test për një metodë testimi që dëshironi të kapërceni.
- Shënimi mund të aplikohet gjithashtu në klasën e testimit, për të kapërcyer të gjitha rastet e testimit nën një klasë. Në këtë rast, ju duhet të përdorni @Ignore në nivelin e klasës.
Kodi ka nevojë që paketa org.junit.Ignore të importohet që @Ignore të funksionojë. Le të demonstrojmë se si të anashkalojmë një metodë testimi në një test JUnit 4. Ne do të modifikojmë JUnitProgram.java për të kapërcyer metodën e parë të testit.
Pjesa e kodit është:
@Ignore @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); } @Test public void test_JUnit2() { System.out.println("This is the testcase test_JUnit2() in this class"); } @Test public void test_JUnit3() { System.out.println("This is the testcase test_JUnit3() in this class"); }
Në ekzekutimin e skedarit të klasës, test_JUnit1() është anashkaluar gjatë ekzekutimit. Përveç kësaj, metoda e shënuar me @Ignore dhe të gjitha metodat e tjera të testimit ekzekutohen siç pritej.
Numri rezultues i "Run" tregon 3/3 raste testimi dhe 1 rast testimi tregon të anashkaluara. Numri i ekzekutimit tregoi 3/3 sepse edhe rasti i provës i anashkaluar u përpoq të ekzekutohej.
Pamja e mëposhtme e ekranit të dritares së konsolës dëshmon të njëjtën gjë.
@Ignore Annotation With A Reason Parameter
Ekziston gjithashtu një variacion për shënimin @Ignore. Shënimi merr një argument të vetëm me një vlerë vargu që është arsyeja e anashkalimit të testit.
Le të demonstrojmë këtë variacion të shënimit @Ignore.
Pjesa e kodit është si më poshtë :
@Ignore("the testcase is under development") @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
Dritarja e konsolës tregon të njëjtin rezultat që ishte pa arsyen që iu kalua shënimit @Ignore.
Tani, le të shohim se si janë bërë të gjitha testetqë i përkasin një klase mund të çaktivizohet. Tani do të përditësojmë shënimin @Ignore në nivelin e klasës për JUnitProgram.java
Pjesa e kodit është siç tregohet më poshtë:
import org.junit.AfterClass; @Ignore("the testcase is under development") public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println("This is the preClass() method that runs one time before the class"); } @Before public void setUp() { System.out.println("_______________________________________________________\n"); System.out.println("This is the setUp() method that runs before each testcase"); } @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
Post ekzekutimi i skedarit të klasës, konsola tregon asgjë, dhe Run count nën skedën JUnit tregon 1 klasë e anashkaluar nga 1 klasë .
Më poshtë është pamja e ekranit të dritares së konsolës:
JUnit 5 – @Disabled Annotation
Shënimi @Disabled në JUnit 5 funksionon njësoj si @Ignore annotation në JUnit 4.
- Mund të çaktivizoni ose të anashkaloni ekzekutimin për një metodë testimi ose një grup testesh duke aplikuar shënimin në nivelin Test.
- Ose të gjitha testet mund të anashkalohen duke aplikuar shënimin @Disabled në nivelin e klasës në vend që ta zbatojnë atë në nivelin e metodës së testimit.
Ashtu si @Ignore, një arsye gjithashtu mund të kalohet për @Disabled që çdo zhvillues ose analist biznesi të dijë pse u anashkalua një test specifik. Parametri mbetet opsional ashtu si në rastin e @Ignore.
( Shënim: Ne do të shmangim demonstrimin e shënimit @Disabled përmes një kodi aktual për të shmangur përsëritjen siç ndjek mënyra e saktë që @Ignore ndjek në JUnit 4.)
I vetmi ndryshim që duhet të vëzhgoni në rastin e @Ignore Vs @Disabled është se kur shënimi zbatohet në niveli i klasës, pas ekzekutimit të skedarit të klasës JUnit,numërimi Run në rastin e JUnit 4 , tregon 1/1 klasë të kapërcyer.
Prandaj një numërim i klasës që kapërcehet ofrohet ndërsa në rastin e Qershor 5 tregon se 3/3 e rasteve të testimit janë anashkaluar duke marrë parasysh se tre metoda testimi janë anashkaluar nga gjithsej tre metodat e testimit në klasë.
Prandaj, në dukshmëria e numërimit të rasteve të testeve të anashkaluara , Njësia 5 bën një punë pak më mirë krahasuar me JUnit 4.
Përfundim
Në këtë tutorial, mësuam se cilat janë situatat kur mund të na duhet të kapërcejmë ekzekutimin e disa rasteve të testimit. Ne gjithashtu mësuam se si të kapërcejmë disa raste testimi si në JUnit 4 ashtu edhe në JUnit 5.