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.


$config[zx-auto] not found$config[zx-overlay] not found