Mae'r Tiwtorial hwn yn Egluro sut i Anwybyddu Achosion Prawf yn JUnit gydag enghreifftiau. Byddwch yn dysgu defnyddio @Anwybyddu ym Mehefin 4 & Anodi @Disabled ym MEH 5:
Yn y tiwtorial blaenorol, cawsom ddeall beth yw'r API o'r enw Anodi, beth mae'n ei wneud a hefyd gweld enghreifftiau sylfaenol ar sut i ddefnyddio anodiadau cylch bywyd, y blaenoriaethau ar eu cyfer dal pan fydd cas prawf yn cael ei weithredu.
Gadewch i ni geisio taflu goleuni ar y sefyllfaoedd pan fydd angen ni ddim yn rhedeg neu yn nid > i fod i redeg yr holl achosion prawf. Byddwn yn dysgu Anwybyddu Achosion Prawf yn JUnit.
JUnit Anwybyddu Achosion Prawf
Gall fod rhai achosion prawf nad ydynt yn cael eu rhedeg oherwydd efallai na fyddant yn cael eu cynnal. yn ymwneud â rhai newidiadau cod neu efallai bod y cod ar gyfer achosion prawf yn dal i gael ei ddatblygu, felly rydym yn osgoi eu rhedeg.
Mewn achosion o'r fath, efallai y bydd angen i ni redeg set o achosion prawf trwy hepgor rhai eraill . Felly, beth mae JUnit 4, yn ogystal â JUnit 5, yn ei ddarparu i ni fel ein bod yn gallu rhedeg ychydig o achosion prawf yn unig wrth anwybyddu neu analluogi neu ei alw'n 'sgipio' rhai o'r achosion prawf?3
Yn ffodus, mae gennym ni @Anwybyddu anodiad ar gyfer JUnit 4 i hepgor achos prawf ond @Anabledd anodiad ar gyfer JUnit 5 i wneud yr un peth.
MEH 4 – @Anwybyddu Anodiad
- Gellid cymhwyso anodiad JUnit 4 @Anwybyddu ar gyfer dull prawf, i hepgor ei weithrediad. Yn yr achos hwn,mae angen i chi ddefnyddio @Anwybyddu gyda'r anodiad @Test ar gyfer dull prawf yr ydych am ei hepgor.
- Gellid defnyddio'r anodiad hefyd i'r dosbarth prawf, i hepgor yr holl achosion prawf o dan ddosbarth. Yn yr achos hwn, mae angen i chi ddefnyddio @Anwybyddu ar lefel dosbarth.
Mae'r cod angen i'r pecyn org.junit.Ignore gael ei fewnforio er mwyn i @Ignore weithio. Gadewch i ni ddangos sut i hepgor dull prawf mewn prawf JUnit 4. Byddwn yn addasu'r JUnitProgram.java i hepgor y dull prawf cyntaf.
Y pyt cod yw:
@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"); }
Wrth weithredu ffeil y dosbarth, mae'r test_JUnit1() yn cael ei hepgor yn ystod y dienyddiad. Yn ogystal, mae'r dull sydd wedi'i anodi â @Ignore a phob dull prawf arall yn rhedeg yn ôl y disgwyl.
Mae'r cyfrif Run canlyniadol yn dangos 3/3 achos prawf ac 1 achos prawf wedi'i hepgor. Roedd y cyfrif rhediad yn dangos 3/3 oherwydd bod hyd yn oed y cas prawf a hepgorwyd wedi ceisio gweithredu.
Mae'r sgrinlun isod o ffenestr y consol yn profi'r un peth.
@Anwybyddu Anodiad Gyda Pharamedr Rheswm
Mae amrywiad i'r anodiad @Anwybyddu hefyd. Mae'r anodiad yn cynnwys un arg gyda gwerth llinynnol sef y rheswm dros hepgor y prawf.
Dewch i ni ddangos yr amrywiad yma o anodiad @Anwybyddu.
Mae pyt y cod fel a ganlyn :
@Ignore("the testcase is under development") @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
Mae ffenestr y consol yn dangos yr un canlyniad ag yr oedd heb y rheswm a drosglwyddwyd i anodiad @Anwybyddu.
Nawr, gadewch i ni weld sut mae'r holl brofiongallai perthyn i ddosbarth fod yn anabl. Byddwn nawr yn diweddaru'r anodiad @Anwybyddu ar lefel dosbarth ar gyfer JUnitProgram.java
Mae'r pyt cod fel y dangosir isod:
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"); }
Ar ôl cyflawni ffeil y dosbarth, mae'r consol yn dangos dim byd, a'r Rhedeg cyfrif o dan y tab JUnit yn dangos 1 dosbarth wedi'i hepgor o 1 dosbarth .
Isod mae sgrinlun o ffenestr y consol:
>
MEH 5 – Anodiad @Anabledd
Mae anodiad @anabled yn JUnit 5 yn gweithio'n debyg i anodiad @Anwybyddu yn JUnit 4.
- Gallwch analluogi neu hepgor gweithrediad ar gyfer dull prawf neu grŵp o brofion drwy gymhwyso'r anodiad ar lefel Prawf.
- Neu gellid hepgor yr holl brofion trwy gymhwyso anodiad @Anabledd ar lefel dosbarth yn lle ei gymhwyso i lefel dull y prawf.
Fel @Anwybyddu, gallai rheswm gael ei basio hefyd i @Disabled i unrhyw ddatblygwr neu ddadansoddwr busnes wybod pam y cafodd achos prawf penodol ei hepgor. Mae'r paramedr yn parhau i fod yn ddewisol yn union fel yn achos @Anwybyddu.
( Sylwer: Byddwn yn osgoi dangos yr anodiad @Anabledd trwy god gwirioneddol i osgoi ailadrodd fel y mae'n dilyn y union ffasiwn mae'r @Anwybyddu yn dilyn ym Mehefin 4.)
Yr unig wahaniaeth y byddwch yn sylwi arno yn achos @Anwybyddu Vs @Anabledd yw pan fydd yr anodiad yn cael ei gymhwyso yn lefel dosbarth, ar ôl gweithredu ffeil dosbarth JUnit,mae'r cyfrif Rhedeg yn achos JUnit 4 , yn dangos 1/1 dosbarth wedi'i hepgor.
Felly darperir cyfrif o'r dosbarth sy'n cael ei hepgor ond yn achos Mehefin 5 yn dangos 3/3 o achosion prawf yn cael eu hanwybyddu o ystyried bod tri dull prawf wedi'u hepgor allan o gyfanswm y tri dull prawf yn y dosbarth.
Felly, ar y mae gwelededd yr achosion prawf a hepgorwyd yn cyfrif , JUnit 5 yn gwneud swydd ychydig yn well o gymharu â JUnit 4.
Casgliad
Yn y tiwtorial hwn, fe wnaethom ddysgu beth yw'r sefyllfaoedd pan allai fod angen i ni hepgor cyflawni ychydig o achosion prawf. Dysgon ni hefyd sut i hepgor rhai achosion prawf yn JUnit 4 yn ogystal â JUnit 5.