JUnit5 @ RunWith
1. Introduktion
I denne hurtige artikel dækker vi brugen af @RunWith kommentar i JUnit 5-rammen.
I JUnit 5, det @RunWith kommentar er blevet erstattet af den mere magtfulde @ExtendWith kommentar.
Men den @RunWith kommentar kan stadig bruges i JUnit5 af hensyn til bagudkompatibilitet.
2. Kørsel af test med en JUnit4-baseret løber
Vi kan køre JUnit5-tests med ethvert andet ældre JUnit-miljø ved hjælp af @RunWith kommentar.
Lad os se et eksempel på at køre disse tests i en Eclipse-version, der kun understøtter JUnit4.
Lad os først oprette den klasse, vi skal teste:
offentlig klasse Hilsner {offentlig statisk streng sayHello () {return "Hej"; }}
Lad os derefter oprette denne almindelige JUnit5-test:
offentlig klasse GreetingsTest {@Test ugyldig når CallingSayHello_thenReturnHello () {assertTrue ("Hello" .equals (Greetings.sayHello ())); }}
Lad os endelig tilføje denne kommentar for at kunne køre testen:
@RunWith (JUnitPlatform.class) offentlig klasse GreetingsTest {// ...}
Det JUnitPlatform klasse er en JUnit4-baseret løber, der lader os køre JUnit4-tests på JUnit-platformen.
Lad os husk at JUnit4 ikke understøtter alle funktionerne i den nye JUnit Platform, så denne løber har en begrænset funktionalitet.
Hvis vi kontrollerer resultatet af testen i Eclipse, kan vi se, at en JUnit4-løber blev brugt:

3. Kørsel af test i et JUnit5-miljø
Lad os nu køre den samme test i en Eclipse-version, der understøtter JUnit5. I dette tilfælde har vi ikke brug for @RunWith kommentar længere, og vi kan skrive testen uden en løber:
offentlig klasse GreetingsTest {@Test ugyldig når CallingSayHello_thenReturnHello () {assertTrue ("Hello" .equals (Greetings.sayHello ())); }}
Testresultatet viser, at vi nu bruger JUnit5-løberen:

4. Migrering fra en JUnit4-baseret løber
Lad os nu migrere en test, der bruger en JUnit4-baseret løber til JUnit5.
Vi skal bruge en forårstest som et eksempel:
@RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (klasser = {SpringTestConfiguration.class}) offentlig klasse GreetingsSpringTest {// ...}
Hvis vi vil migrere denne test til JUnit5, skal vi udskifte @RunWith kommentar med det nye @ExtendWith:
@ExtendWith (SpringExtension.class) @ContextConfiguration (klasser = {SpringTestConfiguration.class}) offentlig klasse GreetingsSpringTest {// ...}
Det SpringExtension klasse leveres af Spring 5 og integrerer Spring TestContext Framework i JUnit 5. The @ExtendWith annotation accepterer enhver klasse, der implementerer Udvidelse interface.
5. Konklusion
I denne korte artikel dækkede vi brugen af JUnit 4'er @RunWith kommentar i JUnit5-rammen.
Den fulde kildekode til eksemplerne er tilgængelig på GitHub.