JUnit 5 @ Bilješka o testiranju

1. Pregled

U ovom ćemo članku napraviti kratki pregled JUnit-a @Test bilješka. Ova napomena pruža moćan alat za izvođenje jedinstvenih i regresijskih ispitivanja.

2. Konfiguracija Maven

Da bismo koristili najnoviju verziju JUnit 5, trebamo dodati sljedeću Mavenovu ovisnost:

 org.junit.jupiter junit-jupiter-motor 5.1.0 test 

Koristimo test opseg jer ne želimo da Maven uključi ovu ovisnost u našu konačnu izgradnju.

Budući da sigurni dodatak još uvijek izvorno ne podržava u potpunosti JUnit 5, trebat ćemo dodati i davatelja usluge, koji Mavenu govori gdje da pronađe naše testove:

 maven-surefire-plugin 2.19.1 org.junit.platform junit-platform-surefire-provider 1.0.2 

U našoj konfiguraciji koristit ćemo sigurni 2.19.1 jer, u trenutku pisanja, verzija 2.20.x nije kompatibilna s junit-platforma-sigurni-dobavljač.

3. Metoda koja se ispituje

Prije svega, izgradimo jednostavnu metodu koju ćemo koristiti u našim testnim scenarijima za prezentaciju @Test mogućnosti bilješke:

javni boolean isNumberEven (cijeli broj) {povratni broj% 2 == 0; }

Ova metoda bi se trebala vratiti pravi ako je prosljeđeni argument paran broj i lažno inače. Sada, provjerimo radi li onako kako bi trebao.

4. Ispitivanje metode

Za naš primjer želimo posebno provjeriti dva scenarija:

  • kada se dobije paran broj, metoda bi se trebala vratiti pravi
  • kada se dobije neparan broj, metoda bi se trebala vratiti lažno

To znači da će implementacijski kod nazvati naš isNumberEven metodom s različitim parametrima i provjerite je li rezultat kakav očekujemo.

Da bi testovi mogli biti prepoznati kao takvi, mi ćemo dodati @Test bilješka. U razredu ih možemo imati koliko god želimo, ali dobra je praksa sastaviti samo one povezane. Primijetite i to test ne smije biti privatni, niti smije vratiti vrijednost — Inače će se samo zanemariti.

S obzirom na ova razmatranja, napišimo naše metode ispitivanja:

@Test void givenEvenNumber_whenCheckingIsNumberEven_thenTrue () {boolean rezultat = bean.isNumberEven (8); Assertions.assertTrue (rezultat); } @Test void givenOddNumber_whenCheckingIsNumberEven_thenFalse () {boolean rezultat = bean.isNumberEven (3); Assertions.assertFalse (rezultat); }

Ako sada pokrenemo Mavenovu gradnju, sigurni dodatak će proći kroz sve anotirane metode u razredima smještenim pod src / test / java i izvršiti ih, što dovodi do neuspjeha izrade ako se dogodi bilo koji test neuspjeh.

Ako dolazite iz JUnit 4, imajte na umu da u ovoj verziji napomena ne prihvaća nikakve parametre. Da bismo provjerili postoji li vremensko ograničenje ili izuzetak, upotrijebili bismo tvrdnje:

@Test void givenLowerThanTenNumber_whenCheckingIsNumberEven_thenResultUnderTenMillis () {Assertions.assertTimeout (Duration.ofMillis (10), () -> bean.isNumberEven (3)); } @Test void givenNull_whenCheckingIsNumberEven_thenNullPointerException () {Assertions.assertThrows (NullPointerException.class, () -> bean.isNumberEven (null)); }

5. Zaključak

U ovom smo brzom vodiču pokazali kako implementirati i pokrenuti jednostavan JUnit test s @Test bilješka.

Više o JUnit okviru možete pronaći u ovom postu koji daje općeniti uvod.

Sav kod korišten u primjerima dostupan je u projektu GitHub.


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