JUnit5 @RunWith

1. Bemutatkozás

Ebben a rövid cikkben a @RunWith annotáció a JUnit 5 keretrendszerben.

Az 5. JUnitben a @RunWith az annotációt az erősebb váltotta fel @ExtendWith annotáció.

Azonban a @RunWith a visszamenőleges kompatibilitás érdekében az annotáció továbbra is használható a JUnit5-ben.

2. Futó tesztek JUnit4-alapú futóval

A JUnit5 teszteket bármely más régebbi JUnit környezettel futtathatjuk a @RunWith annotáció.

Lássunk egy példát ezeknek a teszteknek a futtatására egy olyan Eclipse verzióban, amely csak a JUnit4-et támogatja.

Először hozzuk létre azt az osztályt, amelyet tesztelni fogunk:

public class Greetings {public static String sayHello () {return "Hello"; }}

Ezután hozzuk létre ezt a sima JUnit5 tesztet:

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

Végül tegyük hozzá ezt a kommentárt a teszt futtatásához:

@RunWith (JUnitPlatform.class) public class GreetingsTest {// ...}

A JUnitPlatform class egy JUnit4-alapú futó, amely segítségével futtassunk JUnit4 teszteket a JUnit Platformon.

Nézzük ne feledje, hogy a JUnit4 nem támogatja az új JUnit Platform összes funkcióját, ezért ennek a futónak korlátozott funkcionalitása van.

Ha ellenőrizzük a teszt eredményét az Eclipse-ben, láthatjuk, hogy egy JUnit4 futót használtunk:

3. Tesztek futtatása JUnit5 környezetben

Futtassuk most ugyanazt a tesztet a JUnit5-et támogató Eclipse verzióban. Ebben az esetben nincs szükségünk a @RunWith annotáció már, és futó nélkül is megírhatjuk a tesztet:

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

A teszt eredménye azt mutatja, hogy most a JUnit5 futót használjuk:

4. Áttérés JUnit4-alapú futóról

Térjünk át egy tesztre, amely egy JUnit4-alapú futót használ a JUnit5-re.

Példaként egy tavaszi tesztet fogunk használni:

@RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (class = {SpringTestConfiguration.class}) public class GreetingsSpringTest {// ...}

Ha át akarjuk állítani ezt a tesztet a JUnit5-re, akkor le kell cserélnünk a @RunWith annotáció az újval @ExtendWith:

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

A SpringExtension osztályt az 5. tavasz biztosítja, és a Spring TestContext keretrendszert integrálja az 5. JUnit-be @ExtendWith az annotáció bármely olyan osztályt elfogad, amely a Kiterjesztés felület.

5. Következtetés

Ebben a rövid cikkben kitértünk a JUnit 4 használatára @RunWith annotáció a JUnit5 keretrendszerben.

A példák teljes forráskódja elérhető a GitHub oldalon.