JUnit menyediakan fasilitas untuk melacak pengecualian dan juga untuk memeriksa apakah kode tersebut menampilkan pengecualian yang diharapkan atau tidak.
Junit4 menyediakan cara yang mudah dan terbaca untuk pengujian pengecualian, Anda dapat menggunakan
- Parameter opsional (diharapkan) dari anotasi @test dan
- Untuk melacak informasi, "fail ()" dapat digunakan
Saat Menguji pengecualian, Anda perlu memastikan bahwa kelas pengecualian yang Anda berikan dalam parameter opsional anotasi @test adalah sama. Ini karena Anda mengharapkan pengecualian dari metode yang Anda uji Unit, jika tidak, pengujian JUnit kami akan gagal.
Contoh @ Uji (diharapkan = IllegalArgumentException.class)
Dengan menggunakan parameter "diharapkan", Anda dapat menentukan nama pengecualian yang mungkin dilontarkan oleh pengujian kami. Dalam contoh di atas, Anda menggunakan " IllegalArgumentException" yang akan dilempar oleh pengujian jika pengembang menggunakan argumen yang tidak diizinkan.
Contoh menggunakan @test (diharapkan)
Mari kita pahami pengujian pengecualian dengan membuat kelas Java dengan metode melempar pengecualian. Anda akan menanganinya dan mengujinya di kelas pengujian. Pertimbangkan JUnitMessage.java memiliki metode yang hanya melakukan operasi matematika berdasarkan masukan yang diterima oleh pengguna. Jika ada argumen ilegal yang dimasukkan, itu akan memunculkan "ArithmeticException " . Lihat di bawah:
paket guru99.junit;public class JUnitMessage {pesan String pribadi;public JUnitMessage (pesan String) {this.message = pesan;}public void printMessage () {System.out.println (pesan);int divide = 1/0;}public String printHiMessage () {message = "Hai!" + pesan;System.out.println (pesan);pesan balasan;}}
Penjelasan Kode:
- Baris Kode 7: Membuat konstruktor berparameter dengan inisialisasi bidang.
- Baris Kode 11-14: Membuat metode untuk operasi matematika.
- Baris Kode 18: Membuat metode lain untuk mencetak pesan.
- Baris Kode 20: Membuat string baru untuk mencetak pesan.
- Baris Kode 21: Mencetak pesan baru yang dibuat di baris 20.
Mari buat kelas uji untuk kelas java di atas untuk memverifikasi pengecualian.
Lihat di bawah kelas pengujian untuk pengecualian pengujian unit (ArithmeticException di sini) yang melempar dari kelas java di atas:
AirthematicTest.java
paket guru99.junit;impor org.junit.Assert.assertEquals statis;import org.junit.Test;public class AirthematicTest {public String message = "Saurabh";JUnitMessage junitMessage = JUnitMessage baru (pesan);@Test (diharapkan = ArithmeticException.class)public void testJUnitMessage () {System.out.println ("Pesan Junit sedang dicetak");junitMessage.printMessage ();}@Ujipublic void testJUnitHiMessage () {message = "Hai!" + pesan;System.out.println ("Pesan Junit sedang dicetak");assertEquals (pesan, junitMessage.printMessage ());}}
Penjelasan Kode:
- Baris Kode 13: Menggunakan anotasi @Test untuk membuat pengujian kami. Saat Anda menjalankan metode kelas di atas, itu akan memanggil operasi matematika. Di sini Pengecualian Aritmatika diharapkan, jadi Anda mencantumkannya sebagai parameter di @Test.
- Baris Kode 17: Memanggil printMessage () JUnitMessage.java
- Baris Kode 18: Membuat metode lain untuk mencetak pesan HI.
Jika Anda menjalankan kelas pengujian ini, metode pengujian dijalankan dengan setiap parameter yang ditentukan. Dalam contoh di atas, metode pengujian dijalankan lima kali.
Mari kita jalankan dan verifikasi hasilnya. Lihat di bawah kelas runner pengujian untuk mengeksekusi JunitTestExample.java
Keluaran:
Berikut adalah output yang menunjukkan pengujian yang berhasil tanpa jejak kegagalan seperti yang diberikan di bawah ini:
Ringkasan:
- Pengujian pengecualian adalah fitur khusus yang diperkenalkan di JUnit4. Dalam tutorial ini, Anda telah mempelajari cara menguji pengecualian di JUnit menggunakan @test (dikecualikan)
- Junit menyediakan fasilitas untuk melacak pengecualian dan juga untuk memeriksa apakah kode tersebut menampilkan pengecualian atau tidak
- Untuk pengujian pengecualian, Anda dapat menggunakan
- Parameter opsional (diharapkan) dari anotasi @test dan
- Untuk melacak informasi, "fail ()" dapat digunakan