JUnit5 @RunWith

1. Inleiding

In dit korte artikel bespreken we het gebruik van de @Rennen met annotatie in het JUnit 5-raamwerk.

In JUnit 5, de @Rennen met annotatie is vervangen door de krachtigere @ExtendWith annotatie.

echter, de @Rennen met annotatie kan nog steeds worden gebruikt in JUnit5 omwille van de achterwaartse compatibiliteit.

2. Tests uitvoeren met een op JUnit4 gebaseerde hardloper

We kunnen JUnit5-tests uitvoeren met elke andere oudere JUnit-omgeving met behulp van de @Rennen met annotatie.

Laten we een voorbeeld bekijken van het uitvoeren van deze tests in een Eclipse-versie die alleen JUnit4 ondersteunt.

Laten we eerst de klas maken die we gaan testen:

openbare klasse Groeten {openbare statische String sayHello () {retourneer "Hallo"; }}

Laten we vervolgens deze eenvoudige JUnit5-test maken:

openbare klasse GreetingsTest {@Test void whenCallingSayHello_thenReturnHello () {assertTrue ("Hallo" .equals (Greetings.sayHello ())); }}

Laten we tot slot deze annotatie toevoegen om de test te kunnen uitvoeren:

@RunWith (JUnitPlatform.class) openbare klasse GreetingsTest {// ...}

De JUnitPlatform class is een op JUnit4 gebaseerde hardloper waarmee we JUnit4-tests op het JUnit-platform kunnen uitvoeren.

Laten we Houd er rekening mee dat JUnit4 niet alle functies van het nieuwe JUnit Platform ondersteunt, dus deze hardloper heeft een beperkte functionaliteit.

Als we het resultaat van de test in Eclipse controleren, kunnen we zien dat er een JUnit4-runner is gebruikt:

3. Tests uitvoeren in een JUnit5-omgeving

Laten we nu dezelfde test uitvoeren in een Eclipse-versie die JUnit5 ondersteunt. In dit geval hebben we de @Rennen met annotatie meer en we kunnen de test schrijven zonder een hardloper:

openbare klasse GreetingsTest {@Test void whenCallingSayHello_thenReturnHello () {assertTrue ("Hallo" .equals (Greetings.sayHello ())); }}

Het testresultaat laat zien dat we nu de JUnit5-runner gebruiken:

4. Migreren vanaf een op JUnit4 gebaseerde Runner

Laten we nu een test migreren die een op JUnit4 gebaseerde runner gebruikt naar JUnit5.

We gaan een lentetest als voorbeeld gebruiken:

@RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (classes = {SpringTestConfiguration.class}) openbare klasse GreetingsSpringTest {// ...}

Als we deze test naar JUnit5 willen migreren, moeten we de @Rennen met annotatie met het nieuwe @ExtendWith:

@ExtendWith (SpringExtension.class) @ContextConfiguration (classes = {SpringTestConfiguration.class}) openbare klasse GreetingsSpringTest {// ...}

De Voorjaarsuitbreiding class wordt geleverd door Spring 5 en integreert het Spring TestContext Framework in JUnit 5. Het @ExtendWith annotatie accepteert elke klasse die de Uitbreiding koppel.

5. Conclusie

In dit korte artikel hebben we het gebruik van de JUnit 4's besproken @Rennen met annotatie in het JUnit5-framework.

De volledige broncode voor de voorbeelden is beschikbaar op GitHub.