JUnit5 @RunWith
1. Introduksjon
I denne raske artikkelen vil vi dekke bruken av @RunWith kommentar i JUnit 5-rammeverket.
I JUnit 5, de @RunWith merknader er erstattet av de kraftigere @ExtendWith kommentar.
Imidlertid, den @RunWith merknader kan fremdeles brukes i JUnit5 av hensyn til bakoverkompatibilitet.
2. Kjører tester med en JUnit4-basert løper
Vi kan kjøre JUnit5-tester med andre eldre JUnit-miljøer ved hjelp av @RunWith kommentar.
La oss se et eksempel på å kjøre disse testene i en formørkelsesversjon som bare støtter JUnit4.
La oss først lage klassen vi skal teste:
offentlig klasse Hilsen {offentlig statisk streng siHello () {return "Hei"; }}
Deretter la oss lage denne vanlige JUnit5-testen:
offentlig klasse GreetingsTest {@Test ugyldig når CallingSayHello_thenReturnHello () {assertTrue ("Hello" .equals (Greetings.sayHello ())); }}
Til slutt, la oss legge til denne kommentaren for å kunne kjøre testen:
@RunWith (JUnitPlatform.class) offentlig klasse GreetingsTest {// ...}
De JUnitPlatform class er en JUnit4-basert løper som lar oss kjøre JUnit4-tester på JUnit-plattformen.
La oss husk at JUnit4 ikke støtter alle funksjonene til den nye JUnit-plattformen, så denne løperen har begrenset funksjonalitet.
Hvis vi sjekker resultatet av testen i Eclipse, kan vi se at en JUnit4-løper ble brukt:
3. Kjører tester i et JUnit5-miljø
La oss nå kjøre den samme testen i en formørkelsesversjon som støtter JUnit5. I dette tilfellet trenger vi ikke @RunWith kommentar lenger, og vi kan skrive testen uten løper:
offentlig klasse GreetingsTest {@Test ugyldig når CallingSayHello_thenReturnHello () {assertTrue ("Hello" .equals (Greetings.sayHello ())); }}
Testresultatet viser at vi nå bruker JUnit5-løperen:
4. Migrere fra en JUnit4-basert løper
La oss nå migrere en test som bruker en JUnit4-basert løper til JUnit5.
Vi skal bruke en vårprøve som et eksempel:
@RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (classes = {SpringTestConfiguration.class}) offentlig klasse GreetingsSpringTest {// ...}
Hvis vi vil overføre denne testen til JUnit5, må vi erstatte @RunWith kommentar med det nye @ExtendWith:
@ExtendWith (SpringExtension.class) @ContextConfiguration (klasser = {SpringTestConfiguration.class}) offentlig klasse GreetingsSpringTest {// ...}
De SpringExtension klasse er levert av Spring 5 og integrerer Spring TestContext Framework i JUnit 5. The @ExtendWith merknader godtar alle klasser som implementerer Utvidelse grensesnitt.
5. Konklusjon
I denne korte artikkelen dekket vi bruken av JUnit 4 @RunWith kommentar i JUnit5-rammeverket.
Den fullstendige kildekoden for eksemplene er tilgjengelig på GitHub.