JUnit 5 Fasiraadaha Tusaalooyinka

JUnit 5 waa jiilka xiga ee JUnit. Hadafku waa in la abuuro aasaas casri ah oo loogu talagalay tijaabinta dhinaca horumarinta ee JVM. Tan waxaa ka mid ah in diirada la saaro Java 8 iyo wixii ka sareeya, iyo sidoo kale in la suuro galiyo qaabab badan oo kala duwan oo imtixaan ah.

Waxaad isticmaali kartaa labada Maven iyo Gradle.

Haddii aad isticmaaleyso Maven, waxaad u baahan tahay inaad ku darto ku tiirsanaanta soo socota | | + _ | faylka:


pom.xml

@JUnit 5 Faahfaahin

Waxaad ogaan doontaa in Junit 5, mid ka mid ah isbeddelada muuqda ee muuqda ay tahay in fasallada imtixaannada iyo hababku aysan u baahnayn inay dadweyne sii ahaadaan.

Hadda, aan dhex marno liiska ugu caansan JUnit 5 Fasiraadaha.


@Tijaab

Sharaxaaddani waxay tilmaamaysaa in qaabku yahay habka tijaabada. Xusuusnow sharraxaadani ma qaadanayso astaamo.



org.junit.jupiter
junit-jupiter-api
5.3.1
test


org.junit.jupiter
junit-jupiter-params
5.3.1
test

@Qiyaastii la cayimay

Tijaabooyinka la go'aamiyay waxay suurtogal ka dhigayaan in tijaabo la qaado dhowr jeer doodo kala duwan. Waxaa loogu dhawaaqaa sida caadiga ah import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; class JUnit5Test {

@Test
void helloJUnit5() {
assertEquals(10, 5+5);
} }
qaababka laakiin adeegsada @Test sharaxaad halkii.

Intaas waxaa sii dheer, waa inaad ku dhawaaqdaa ugu yaraan hal ilo oo bixin doona doodaha baaq kasta kadibna aad u isticmaashid doodaha habka imtixaanka.

Tusaale ahaan, tusaalaha soo socdaa wuxuu muujinayaa imtixaan la cabbiray oo adeegsanaya @ParameterizedTest sharaxaad si loo cadeeyo xarig xarig ah inuu noqdo isha doodaha.


Tusaale:

@ValueSource

@Taabashada Kucelceliska

JUnit 5 wuxuu awood u leeyahay inuu ku celiyo imtaxaan tiro cayiman oo cayiman isagoo si fudud ugu sharraxaya habka import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import static org.junit.jupiter.api.Assertions.assertTrue; class JUnit5Test {
@ParameterizedTest
@ValueSource(strings = { 'cali', 'bali', 'dani' })
void endsWithI(String str) {
assertTrue(str.endsWith('i'));
} }
iyo cadeynta wadarta tirada ku celcelinta la doonayo.

U yeerid kasta oo tijaabo ah oo soo noqnoqota waxay u dhaqantaa sidii fulinta xukun joogto ah @RepeatedTest habka.

Tani waxay si gaar ah waxtar ugu leedahay baaritaanka UI ee Selenium.


@Test

Sida aad ka arki karto natiijada imtixaanka, marka import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.RepeatedTest; import org.junit.jupiter.api.RepetitionInfo; import org.junit.jupiter.api.TestInfo; import static org.junit.jupiter.api.Assertions.assertEquals; class JUnit5Test {

@RepeatedTest(value = 5, name = '{displayName} {currentRepetition}/{totalRepetitions}')
@DisplayName('RepeatingTest')
void customDisplayName(RepetitionInfo repInfo, TestInfo testInfo) {
int i = 3;
System.out.println(testInfo.getDisplayName() +

'-->' + repInfo.getCurrentRepetition()
);


assertEquals(repInfo.getCurrentRepetition(), i);
} }
, imtixaanku wuu gudbaa, haddii kale wuu dhacaa.

@Nacaybtire

Fasallada imtixaanka iyo hababka imtixaanka ayaa sheegi kara magacyada muujinta caadada ah oo ay soo bandhigi doonaan orodyahannada imtixaannada iyo warbixinnada imtixaanka.

Tusaale:


i==3

@KahorWarba

The import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; @DisplayName('DisplayName Demo') class JUnit5Test {
@Test
@DisplayName('Custom test name')
void testWithDisplayName() {
}
@Test
@DisplayName('Print test name')
void printDisplayName(TestInfo testInfo) {
System.out.println(testInfo.getDisplayName());
} }
qeexitaanku wuxuu tilmaamayaa in habka la sharaxay la fuliyo kahor intaan la tijaabin qaab kasta, oo la mid ah JUnit 4's @BeforeEach.

Tusaale:

@Before

Wax soo saarka:

import org.junit.jupiter.api.*; class JUnit5Test {
@BeforeEach
void init(TestInfo testInfo) {
String callingTest = testInfo.getTestMethod().get().getName();
System.out.println(callingTest);
}
@Test
void firstTest() {
System.out.println(1);
}
@Test
void secondTest() {
System.out.println(2);
} }

@KadibMarba

Fasiraaddan waxay muujineysaa in habka la sharaxay loo fuliyo hab kasta oo tijaabo ka dib, oo la mid ah JUnit 4's firstTest 1 secondTest 2 . Tusaale ahaan, haddii tijaabooyinku u baahan yihiin inay dib u dejiyaan guri imtixaan kasta ka dib, waxaan ku sharixi karnaa hab @After hawshaas.


@AfterEach

Wax soo saarka:

import org.junit.jupiter.api.*; class JUnit5Test {
@Test
void firstTest() {
System.out.println(1);
}
@Test
void secondTest() {
System.out.println(2);
}
@AfterEach
void after(TestInfo testInfo) {
String callingTest = testInfo.getTestMethod().get().getName();
System.out.println(callingTest);
} }

@Waxaa kahor

Fasiraaddaani waxay fulisaa hab kahor dhammaan imtixaannada. Tani waxay lamid tahay JUnit 4’s 1 firstTest 2 secondTest . The @BeforeClass sharaxaadda waxaa caadi ahaan loo isticmaalaa in lagu bilaabo waxyaabo badan oo imtixaanada ah.

Tusaale:

@BeforeAll

Wax soo saarka:

import org.junit.jupiter.api.*; class JUnit5Test {
@BeforeAll
static void init() {
System.out.println('Only run once before all tests');
}
@Test
void firstTest() {
System.out.println(1);
}
@Test
void secondTest() {
System.out.println(2);
} }

@Dhamaan

The Only run once before all tests 1 2 sharraxaad waxaa loo isticmaalaa in lagu fuliyo habka la soo sheegay, kaliya marka dhammaan tijaabooyinka la fuliyo. Tani waxay lamid tahay JUnit 4’s @AfterAll . Waxaan u isticmaalnaa sharaxaadda si aan u duminno ama u joojino dhammaan howlaha dhammaadka imtixaannada oo dhan.

Tusaale:

@AfterClass

Wax soo saarka:

import org.junit.jupiter.api.*; class JUnit5Test {
@Test
void firstTest() {
System.out.println(1);
}
@Test
void secondTest() {
System.out.println(2);
}
@AfterAll
static void after() {
System.out.println('Only run once after all tests');
} }

@Tag

Waxaan u adeegsan karnaa sharraxaadan si aan ugu dhawaaqno astaamaha lagu shaandheeyo imtixaannada, midkood heerka fasalka ama habka.

The 1 2 Only run once after all tests sharaxaadda ayaa faa iido leh markaan rabno inaan sameysano xirmo tijaabo ah oo leh tijaabooyin xul ah.

Tusaale:

@Tag

@ Naafo

The import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @Tag('smoke') class JUnit5Test {
@Test
@Tag('login')
void validLoginTest() {
}
@Test
@Tag('search')
void searchTest() {
} }
sharaxaad ayaa loo isticmaalaa in lagu joojiyo ama looga boodo imtixaanada heerka fasalka ama habka. Tani waxay lamid tahay JUnit 4’s @Disabled.

Markii lagu dhawaaqo heerka fasalka, dhammaan @Ignore hababka waa laga booday. Markaan isticmaalno @test heerka habka, kaliya habka la sharaxay ayaa naafo ah.

Tusaale:

@Disabled loo isticmaalo si loo joojiyo fasalka imtixaanka:

@Disabled

Tusaale:

import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @Disabled class DisabledClassDemo {
@Test
void testWillBeSkipped() {
} }
sharaxaad loo isticmaalay in lagu joojiyo habka tijaabada:

@Disabled