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.