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.