JUnit 5 @Test Annotation

1. Ikhtisar

Dalam artikel ini, kami akan membuat ulasan singkat tentang anotasi @Test JUnit . Anotasi ini menyediakan alat yang ampuh untuk menjalankan unit dan pengujian regresi.

2. Konfigurasi Maven

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

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

Kami menggunakan cakupan pengujian karena kami tidak ingin Maven menyertakan dependensi ini dalam build akhir kami.

Karena plugin yang pasti belum sepenuhnya mendukung JUnit 5 secara native, kami juga perlu menambahkan penyedia , yang memberi tahu Maven di mana menemukan pengujian 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 karena, pada saat penulisan, versi 2.20.x tidak kompatibel dengan junit-platform-surefire-provider .

3. Metode Di Bawah Pengujian

Pertama-tama, mari buat metode sederhana yang akan kita gunakan dalam skenario pengujian untuk menunjukkan kemampuan anotasi @Test :

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

Metode ini harus mengembalikan nilai true jika argumen yang diberikan adalah bilangan genap dan salah jika sebaliknya. Sekarang, mari kita lihat apakah itu berfungsi sebagaimana mestinya.

4. Menguji Metode

Untuk contoh kami, kami ingin secara khusus memeriksa dua skenario:

  • ketika diberi bilangan genap, metode tersebut harus mengembalikan nilai true
  • ketika diberi angka ganjil, metode tersebut harus mengembalikan false

Ini berarti bahwa kode implementasi akan memanggil metode isNumberEven kami dengan parameter yang berbeda dan memeriksa bahwa hasilnya adalah yang kami harapkan.

Agar pengujian dikenali seperti itu, kami akan menambahkan anotasi @Test . Kita dapat memiliki sebanyak mungkin yang kita inginkan di kelas, tetapi merupakan praktik yang baik untuk mengumpulkan hanya yang terkait. Perhatikan juga bahwa pengujian tidak boleh bersifat pribadi, juga tidak boleh mengembalikan nilai — jika tidak, pengujian akan diabaikan.

Dengan pertimbangan ini, mari tulis metode pengujian 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); }

Jika sekarang kita menjalankan build Maven, plugin surefire akan melalui semua metode yang dianotasi di kelas yang ditempatkan di bawah src / test / java dan menjalankannya , yang menyebabkan build gagal jika ada kegagalan pengujian .

Jika Anda berasal dari JUnit 4, perhatikan bahwa dalam versi ini anotasi tidak menerima parameter apa pun. Untuk memeriksa waktu tunggu atau pengecualian yang muncul, kami akan menggunakan pernyataan 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 singkat ini, kami menunjukkan cara mengimplementasikan dan menjalankan pengujian JUnit sederhana dengan anotasi @Test .

Lebih lanjut tentang kerangka JUnit dapat ditemukan di posting ini yang memberikan pengenalan umum.

Semua kode yang digunakan dalam contoh tersedia di proyek GitHub.