JUnit5 @RunWith

1. Úvod

V tomto článku sa budeme venovať použitiu @RunWith anotácia v rámci JUnit 5.

V JUnit 5, the @RunWith anotácia bola nahradená výkonnejšou @ExtendWith anotácia.

Avšak @RunWith z dôvodu spätnej kompatibility je možné v JUnit5 stále používať anotáciu.

2. Bežné testy s bežcom založeným na JUnit4

Testy JUnit5 môžeme spustiť s akýmkoľvek iným starším prostredím JUnit pomocou @RunWith anotácia.

Pozrime sa na príklad spustenia týchto testov vo verzii Eclipse, ktorá podporuje iba JUnit4.

Najprv si vytvorme triedu, ktorú ideme testovať:

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

Ďalej vytvoríme tento obyčajný test JUnit5:

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

Na záver pridáme túto anotáciu, aby sme mohli test spustiť:

@RunWith (JUnitPlatform.class) verejná trieda GreetingsTest {// ...}

The JUnitPlatform class je bežec založený na JUnit4, ktorý nám umožňuje spúšťať testy JUnit4 na platforme JUnit.

Poďme majte na pamäti, že JUnit4 nepodporuje všetky funkcie novej platformy JUnit, takže tento bežec má obmedzené funkcie.

Ak skontrolujeme výsledok testu v Eclipse, môžeme vidieť, že bol použitý bežec JUnit4:

3. Spúšťanie testov v prostredí JUnit5

Poďme teraz spustiť ten istý test vo verzii Eclipse, ktorá podporuje JUnit5. V tomto prípade nepotrebujeme @RunWith anotáciu a test môžeme napísať bez bežca:

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

Výsledok testu ukazuje, že teraz používame bežec JUnit5:

4. Migrácia z bežca založeného na JUnit4

Poďme teraz migrovať test, ktorý používa bežca založeného na JUnit4, na JUnit5.

Ako príklad použijeme jarný test:

@RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (classes = {SpringTestConfiguration.class}) verejná trieda GreetingsSpringTest {// ...}

Ak chceme tento test migrovať na JUnit5, musíme vymeniť @RunWith anotácia k novému @ExtendWith:

@ExtendWith (SpringExtension.class) @ContextConfiguration (classes = {SpringTestConfiguration.class}) verejná trieda GreetingsSpringTest {// ...}

The SpringExtension triedy poskytuje Spring 5 a integruje Spring TestContext Framework do JUnit 5. The @ExtendWith anotácia akceptuje akúkoľvek triedu, ktorá implementuje Predĺženie rozhranie.

5. Záver

V tomto krátkom článku sme sa venovali použitiu JUnit 4's @RunWith anotácia v rámci JUnit5.

Celý zdrojový kód príkladov je k dispozícii na GitHub.


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