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
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.
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
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 {
qaababka laakiin adeegsada
@Test
void helloJUnit5() {
assertEquals(10, 5+5);
} } @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
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 {
iyo cadeynta wadarta tirada ku celcelinta la doonayo.
@ParameterizedTest
@ValueSource(strings = { 'cali', 'bali', 'dani' })
void endsWithI(String str) {
assertTrue(str.endsWith('i'));
} }
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 {
, imtixaanku wuu gudbaa, haddii kale wuu dhacaa.
@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);
} }
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
The import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; @DisplayName('DisplayName Demo') class JUnit5Test {
qeexitaanku wuxuu tilmaamayaa in habka la sharaxay la fuliyo kahor intaan la tijaabin qaab kasta, oo la mid ah JUnit 4's
@Test
@DisplayName('Custom test name')
void testWithDisplayName() {
}
@Test
@DisplayName('Print test name')
void printDisplayName(TestInfo testInfo) {
System.out.println(testInfo.getDisplayName());
} } @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);
} }
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);
} }
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);
} }
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');
} }
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
The import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @Tag('smoke') class JUnit5Test {
sharaxaad ayaa loo isticmaalaa in lagu joojiyo ama looga boodo imtixaanada heerka fasalka ama habka. Tani waxay lamid tahay JUnit 4’s
@Test
@Tag('login')
void validLoginTest() {
}
@Test
@Tag('search')
void searchTest() {
} } @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 {
sharaxaad loo isticmaalay in lagu joojiyo habka tijaabada:
@Test
void testWillBeSkipped() {
} }
@Disabled