JUnit menyediakan kemudahan untuk mengesan pengecualian dan juga untuk memeriksa sama ada kod tersebut melemparkan pengecualian yang diharapkan atau tidak.
Junit4 menyediakan cara mudah dan mudah dibaca untuk pengecualian ujian, anda boleh gunakan
- Parameter pilihan (dijangka) anotasi @test dan
- Untuk mengesan maklumat, "fail ()" dapat digunakan
Semasa pengecualian Menguji, anda perlu memastikan bahawa kelas pengecualian yang anda berikan dalam parameter pilihan anotasi @ ujian sama. Ini kerana anda mengharapkan pengecualian dari kaedah yang anda Uji Unit, jika tidak, ujian JUnit kami akan gagal.
Contoh @ Ujian (dijangka = IllegalArgumentException.class)
Dengan menggunakan parameter "diharapkan", anda dapat menentukan nama pengecualian yang mungkin dilontarkan oleh ujian kami. Dalam contoh di atas, anda menggunakan " IllegalArgumentException" yang akan dilemparkan oleh ujian jika pembangun menggunakan argumen yang tidak dibenarkan.
Contoh menggunakan @test (dijangka)
Mari memahami pengecualian ujian dengan membuat kelas Java dengan kaedah membuang pengecualian. Anda akan mengatasinya dan mengujinya di kelas ujian. Pertimbangkan JUnitMessage.java mempunyai kaedah yang hanya melakukan operasi matematik berdasarkan input yang diterima oleh pengguna. Sekiranya ada hujah haram yang dimasukkan, ia akan melemparkan "ArithmeticException " . Lihat di bawah:
pakej guru99.junit;JUnitMessage kelas awam {mesej String peribadi;JUnitMessage awam (Mesej rentetan) {this.message = mesej;}cetak kosong awam () {System.out.println (mesej);int divide = 1/0;}public String printHiMessage () {mesej = "Hai!" + mesej;System.out.println (mesej);mesej balik;}}
Penjelasan Kod:
- Baris Kod 7: Membuat konstruktor parameter dengan inisialisasi medan.
- Garis Kod 11-14: Membuat kaedah untuk operasi matematik.
- Baris Kod 18: Membuat kaedah lain untuk mencetak mesej.
- Baris Kod 20: Membuat rentetan baru untuk mencetak mesej.
- Baris Kod 21: Mencetak mesej baru yang dibuat dalam baris 20.
Mari buat kelas ujian untuk kelas java di atas untuk mengesahkan pengecualian.
Lihat di bawah kelas ujian ke pengecualian ujian unit (ArithmeticException di sini) membuang dari kelas java di atas:
AirthematicTest.java
pakej guru99.junit;import org statik.junit.Assert.assertEquals;import org.junit.Test;AirthematicTest kelas awam {mesej String awam = "Saurabh";JUnitMessage junitMessage = JUnitMessage baru (mesej);@Test (dijangka = ArithmeticException.class)ujian kekosongan awamJUnitMessage () {System.out.println ("Junit Message sedang mencetak");junitMessage.printMessage ();}@ Ujianujian kekosongan awamJUnitHiMessage () {mesej = "Hai!" + mesej;System.out.println ("Junit Message sedang mencetak");assertEquals (mesej, junitMessage.printMessage ());}}
Penjelasan Kod:
- Baris Kod 13: Menggunakan anotasi @Test untuk membuat ujian kami. Semasa anda melaksanakan kaedah kelas di atas, ia akan menjalankan operasi matematik. Di sini Pengecualian Aritmetik dijangka, jadi anda menyenaraikannya sebagai parameter di @Test.
- Baris Kod 17: Meminta printMessage () JUnitMessage.java
- Baris Kod 18: Membuat kaedah lain untuk mencetak mesej HI.
Sekiranya anda menjalankan kelas ujian ini, kaedah ujian dijalankan dengan setiap parameter yang ditentukan. Dalam contoh di atas, kaedah ujian dijalankan lima kali.
Mari kita laksanakan dan sahkan hasilnya. Lihat di bawah kelas pelari ujian untuk melaksanakan JunitTestExample.java
Pengeluaran:
Berikut adalah output yang menunjukkan ujian berjaya tanpa jejak kegagalan seperti yang diberikan di bawah:
Ringkasan:
- Pengecualian pengujian adalah ciri khas yang diperkenalkan di JUnit4. Dalam tutorial ini, anda telah belajar bagaimana menguji pengecualian di JUnit menggunakan @test (dikecualikan)
- Junit menyediakan kemudahan untuk mengesan pengecualian dan juga untuk memeriksa sama ada kod tersebut membuang pengecualian atau tidak
- Untuk pengecualian ujian, anda boleh menggunakan
- Parameter pilihan (dijangka) anotasi @test dan
- Untuk mengesan maklumat, "fail ()" dapat digunakan