A JUnit 5 és Gradle használata
1. Áttekintés
Ebben az oktatóanyagban teszteket fogunk futtatni az új JUnit 5 platformon a Gradle build eszközzel.
Konfigurálunk egy projektet, amely támogatja a régi és az új verziót is.
Az új verzióval kapcsolatos további információkért olvassa el az Útmutató az 5. JUnithez című cikket. Vagy a Bevezetés a fokozatba részletes információkat talál a build eszközről.
2. Gradle Setup
Először ellenőrizzük, hogy a build eszköz 4.6-os vagy újabb verziója telepítve van-e, mivel ez a legkorábbi verzió, amely a JUnit 5-gyel működik.
A legegyszerűbb módszer a fokozat -v parancs:
$> gradle -v --------------------------------------------- --------------- Gradle 4.10.2 ------------------------------- -----------------------------
És ha szükséges, a telepítés lépéseit követhetjük a megfelelő verzió megszerzéséhez.
Miután mindent telepítettünk, be kell állítanunk a Gradle alkalmazást a épít.gradle fájl.
Kezdhetjük azzal, hogy az egység tesztplatformját a build eszközhöz szállítjuk:
teszt {useJUnitPlatform ()}
Most, hogy meghatároztuk a platformot, meg kell adnunk a JUnit-függőségeket. Itt figyelemre méltó különbséget látunk a JUnit 5 és a korábbi verziók között.
Lásd: a korábbi verziókkal csak egy függőségre volt szükségünk. A JUnit 5-ben azonban az API el van választva a futástól, ami két függőséget jelent.
Az API a junit-jupiter-api. A futási idő az junit-jupiter-motor az 5. JUnit számára, és junit-vintage-motor a 3. vagy 4. JUnit számára.
Ezt a kettőt beszállítjuk testVégrehajtás és timeRuntimeOnly, illetve:
függőségek {testImplementation 'org.junit.jupiter: junit-jupiter-api: 5.3.1' testRuntimeOnly 'org.junit.jupiter: junit-jupiter-engine: 5.3.1'}
3. Tesztek készítése
Írjuk meg az első tesztünket. Úgy néz ki, mint a korábbi verziók:
@Test public void testAdd () {assertEquals (42, Integer.sum (19, 23)); }
Most, futtathatjuk a tesztet a gradle tiszta teszt parancs.
Annak ellenőrzésére, hogy az 5. JUnit-et használjuk, megnézhetjük az importálást. A behozatal a @Teszt és assertEquals kezdetű csomagnak kell lennie org.junit.jupiter.api:
import org.junit.jupiter.api.Test; statikus org.junit.jupiter.api.Assertions.assertEquals importálása;
Tehát az utolsó példában létrehoztunk egy tesztet a „régi” funkcionalitással, amely évek óta működik. Most létrehozunk egy másik példát, amely a JUnit 5 új funkcióinak egy részét használja:
@Test public void testDivide () {assertThrows (ArithmeticException.class, () -> {Integer.divideUnsigned (42, 0);}); }
assertThrows egy új állítás a JUnit5-ben, amely felváltja a @Test (várható = ArithmeticException.class).
4. A JUnit 5 tesztek konfigurálása fokozattal
Ezután a Gradle és a JUnit5 mélyebb integrációját vizsgáljuk.
Tegyük fel, hogy a csomagunkban kétféle teszt van: hosszú és rövid. Használhatnánk a JUnit 5-öt @Címke kommentár:
public class CalculatorJUnit5Test {@Tag ("slow") @Test public void testAddMaxInteger () {assertEquals (2147483646, Integer.sum (2147183646, 300000)); } @Tag ("gyors") @Test public void testDivide () {assertThrows (ArithmeticException.class, () -> {Integer.divideUnsigned (42, 0);}); }}
Ezután elmondjuk a build eszköznek, melyiket kell végrehajtani. Esetünkben hajtsuk végre a rövid futású (gyors) teszteket:
teszt {useJUnitPlatform {includeTags "gyors" kizáró címkék "lassú"}}
5. A régi verziók támogatásának engedélyezése
Most még mindig lehet JUnit 3 és 4 teszteket létrehozni az új Jupiter motorral. Még inkább keverhetjük őket az új verzióval ugyanabban a projektben, mondjuk migrációs forgatókönyvben.
Első lépésként hozzáadunk néhány függőséget a meglévő build konfigurációhoz:
testCompileOnly 'junit: junit: 4.12' testRuntimeOnly 'org.junit.vintage: junit-vintage-engine: 5.3.1'
Vegye figyelembe, hogy a projektünkben most mindkettő megtalálható junit-jupiter-motor továbbá junit-vintage-motor.
Most létrehozunk egy új osztályt, és beillesztjük a testDivide módszer, amelyet korábban létrehoztunk. Ezután hozzáadjuk a @Teszt és assertEquals. Ezúttal azonban mindenképpen a régi 4-es verziójú csomagokat használjuk, amelyek kezdve org.junit:
statikus org.junit.Assert.assertEquals importálása; import org.junit.Test; public class CalculatorJUnit4Test {@Test public void testAdd () {assertEquals (42, Integer.sum (19, 23)); }}
6. Következtetés
Ebben az oktatóanyagban integráltuk a Gradle-t a JUnit 5-gyel. Sőt, a 3. és 4. verzió támogatását is hozzáadtuk.
Láttuk, hogy a build eszköz kiváló támogatást nyújt a régi és az új verzióhoz. Ezért egy új projekt új funkcióit felhasználhatjuk anélkül, hogy minden meglévő tesztünket megváltoztatnánk.
A teljes kódpélda a GitHub projektben érhető el. Használja nyugodtan saját projektje kiindulópontjaként.