JUnit 5 @Tot Anotasi

1. Gambaran keseluruhan

Dalam artikel ini, kami akan membuat tinjauan ringkas mengenai anotasi @Test JUnit . Anotasi ini menyediakan alat yang ampuh untuk melakukan ujian unit dan regresi.

2. Konfigurasi Maven

Untuk menggunakan versi terbaru JUnit 5, kita perlu menambahkan kebergantungan Maven berikut:

 org.junit.jupiter junit-jupiter-engine 5.1.0 test 

Kami menggunakan skop ujian kerana kami tidak mahu Maven memasukkan kebergantungan ini dalam pembuatan terakhir kami.

Oleh kerana plugin surefire masih tidak menyokong sepenuhnya JUnit 5, kami juga perlu menambahkan penyedia , yang memberitahu Maven di mana untuk mencari ujian kami:

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

Dalam konfigurasi kami, kami akan menggunakan surefire 2.19.1 kerana, pada masa penulisan, versi 2.20.x tidak serasi dengan pembekal junit-platform-surefire .

3. Kaedah Diuji

Pertama sekali, mari kita membina kaedah mudah yang akan kita gunakan dalam senario ujian kami untuk menunjukkan keupayaan anotasi @Test :

public boolean isNumberEven(Integer number) { return number % 2 == 0; }

Kaedah ini harus kembali benar jika argumen yang dilontarkan adalah nombor genap dan salah . Sekarang, mari kita periksa sama ada ia berfungsi seperti yang sepatutnya.

4. Menguji Kaedah

Sebagai contoh, kami ingin memeriksa dua senario secara khusus:

  • apabila diberi nombor genap, kaedah itu akan menjadi benar
  • apabila diberi nombor ganjil, kaedah tersebut harus dikembalikan palsu

Ini bermaksud bahawa kod pelaksanaan akan memanggil kaedah isNumberEven kami dengan parameter yang berbeza dan periksa bahawa hasilnya adalah apa yang kami harapkan.

Agar ujian dapat dikenali seperti itu, kami akan menambahkan anotasi @Test . Kita boleh memiliki sebilangan besar yang kita mahukan dalam kelas, tetapi adalah amalan yang baik untuk mengumpulkan hanya yang berkaitan. Perhatikan juga bahawa ujian tidak boleh bersifat peribadi, dan juga tidak mengembalikan nilai — jika tidak, itu akan diabaikan.

Memandangkan pertimbangan ini, mari tulis kaedah ujian kami:

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

Sekiranya kita sekarang menjalankan build Maven, plugin surefire akan melalui semua kaedah anotasi dalam kelas yang diletakkan di bawah src / test / java dan melaksanakannya , menyebabkan build gagal jika ada kegagalan ujian yang berlaku .

Sekiranya anda berasal dari JUnit 4, ketahuilah bahawa dalam versi ini anotasi tidak menerima parameter apa pun. Untuk memeriksa masa tamat atau pengecualian yang dilemparkan, kami akan menggunakan penegasan sebagai gantinya:

@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. Kesimpulan

Dalam tutorial ringkas ini, kami menunjukkan cara melaksanakan dan menjalankan ujian JUnit sederhana dengan anotasi @Test .

Lebih banyak mengenai kerangka kerja JUnit boleh didapati dalam catatan ini yang memberikan pengenalan umum.

Semua kod yang digunakan dalam contoh terdapat dalam projek GitHub.