JUnit5 @RunWith

1. Uvod

U ovom ćemo kratkom članku pokriti upotrebu @RunWith napomena u okviru JUnit 5.

U JUNITU 5, the @RunWith napomena je zamijenjena snažnijom @ExtendWith bilješka.

Međutim @RunWith napomena se još uvijek može koristiti u JUnit5 radi povratne kompatibilnosti.

2. Izvođenje testova s ​​trkačem temeljenim na JUnit4

Možemo pokrenuti JUnit5 testove sa bilo kojim drugim starijim JUnit okruženjem koristeći @RunWith bilješka.

Pogledajmo primjer izvođenja ovih testova u verziji Eclipse koja podržava samo JUnit4.

Prvo, kreirajmo klasu koju ćemo testirati:

javni razred Pozdrav {public static String sayHello () {return "Hello"; }}

Dalje, kreirajmo ovaj obični JUnit5 test:

javna klasa GreetingsTest {@Test void whenCallingSayHello_thenReturnHello () {assertTrue ("Hello" .equals (Greetings.sayHello ())); }}

Na kraju, dodajmo ovu napomenu da bismo mogli pokrenuti test:

@RunWith (JUnitPlatform.class) javna klasa GreetingsTest {// ...}

The JUnitPlatform class je trkač zasnovan na JUnit4 koji nam je omogućio pokretanje JUnit4 testova na platformi JUnit.

Idemo imajte na umu da JUnit4 ne podržava sve značajke nove JUnit platforme, tako da ovaj pokretački program ima ograničenu funkcionalnost.

Ako provjerimo rezultat testa u Eclipseu, možemo vidjeti da je korišten JUnit4 trkač:

3. Pokretanje testova u okruženju JUnit5

Pokrenimo sada isti test u verziji Eclipse koja podržava JUnit5. U ovom slučaju, ne trebamo @RunWith napomena i test možemo napisati bez trkača:

javna klasa GreetingsTest {@Test void whenCallingSayHello_thenReturnHello () {assertTrue ("Hello" .equals (Greetings.sayHello ())); }}

Rezultati testa pokazuju da sada koristimo trkač JUnit5:

4. Migracija s pokretača temeljenog na JUnit4

Idemo sada migrirati test koji koristi trkač zasnovan na JUnit4 na JUnit5.

Kao primjer upotrijebit ćemo proljetni test:

@RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (classes = {SpringTestConfiguration.class}) javna klasa GreetingsSpringTest {// ...}

Ako želimo migrirati ovaj test na JUnit5, moramo zamijeniti @RunWith bilješka s novim @ExtendWith:

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

The ProljećeEkstenzija klasu pruža Spring 5 i integrira Spring TestContext Framework u JUnit 5. The @ExtendWith anotacija prihvaća bilo koju klasu koja implementira Proširenje sučelje.

5. Zaključak

U ovom kratkom članku pokrili smo upotrebu JUnit-a 4 @RunWith napomena u okviru JUnit5.

Potpuni izvorni kod za primjere dostupan je na GitHubu.