JUnit Tes Pengecualian yang Diharapkan: @Test(diharapkan)

JUnit menyediakan fasilitas untuk melacak pengecualian dan juga untuk memeriksa apakah kode tersebut memunculkan pengecualian yang diharapkan atau tidak.

Junit4 menyediakan cara yang mudah dan mudah dibaca untuk pengujian pengecualian, yang dapat Anda gunakan

  • Parameter opsional (diharapkan) dari anotasi @test dan
  • Untuk melacak informasi, “fail()” dapat digunakan

Sementara pengujian pengecualian, Anda perlu memastikan bahwa kelas pengecualian yang Anda berikan dalam parameter opsional tersebut @test anotasi adalah sama. Ini karena Anda mengharapkan pengecualian dari metode yang Anda gunakan Pengujian Unit, jika tidak kami JUnit tes akan gagal.

Contoh@Test(diharapkan=IllegalArgumentException.kelas)

Dengan menggunakan parameter "yang diharapkan", Anda dapat menentukan nama pengecualian yang mungkin diberikan oleh pengujian kami. Dalam contoh di atas, Anda menggunakan “Pengecualian Argumen Ilegal” yang akan dilempar oleh pengujian jika pengembang menggunakan argumen yang tidak diizinkan.

Contoh menggunakan @test(diharapkan)

Mari kita pahami pengujian pengecualian dengan membuat a Java kelas dengan metode yang melempar pengecualian. Anda akan menanganinya dan mengujinya di kelas pengujian. Pertimbangkan JUnitMessage.java memiliki metode yang hanya melakukan operasi matematika berdasarkan input yang diterima pengguna. Jika ada argumen ilegal yang dimasukkan, maka akan muncul “ArithmeticException”. Lihat di bawah:

Contoh menggunakan @Test

package guru99.junit;

public class JUnitMessage{

	private String message;

	public JUnitMessage(String message) {
		this.message = message;
	}

public void printMessage(){

	System.out.println(message); 
	int divide=1/0;

}

public String printHiMessage(){ 

	message="Hi!" + message;
	
	System.out.println(message);

	return message;
}

}

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 pada baris 20.

Mari buat kelas pengujian untuk kelas Java di atas untuk memverifikasi pengecualian.

Lihat kelas pengujian di bawah ini untuk menguji pengecualian unit (ArithmeticException di sini) yang dilempar dari kelas Java di atas:

AirthematicTest.java

Tes Tematik Udara.Java

package guru99.junit;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class AirthematicTest {

	public String message = "Saurabh";
	
	JUnitMessage junitMessage = new JUnitMessage(message);
	
	@Test(expected = ArithmeticException.class)
	public void testJUnitMessage(){

		System.out.println("Junit Message is printing ");
		junitMessage.printMessage();

	}

	@Test
	public void testJUnitHiMessage(){ 
		message="Hi!" + message;
		System.out.println("Junit Message is printing ");
		assertEquals(message, junitMessage.printMessage());
	
	}
}

Penjelasan Kode:

  • Baris Kode 13: Menggunakan anotasi @Test untuk membuat pengujian kami. Saat Anda menjalankan metode kelas di atas, itu akan menjalankan operasi matematika. Di sini Pengecualian Aritmatika diharapkan, jadi Anda mencantumkannya sebagai parameter di @Test.
  • Baris Kode 17: Memanggil printMessage() JUnitPesan.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 test runner untuk dieksekusi JunitTestExample.java

Keluaran:

Berikut adalah output yang menunjukkan pengujian berhasil tanpa jejak kegagalan seperti yang diberikan di bawah ini:

Tes Tematik Udara.Java Keluaran

Kesimpulan

  • Pengujian pengecualian adalah fitur khusus yang diperkenalkan JUnit4. Dalam tutorial ini, Anda telah mempelajari cara menguji pengecualian JUnit menggunakan @test(dikecualikan)
  • Junit menyediakan fasilitas untuk melacak pengecualian dan juga untuk memeriksa apakah kode tersebut melemparkan pengecualian atau tidak
  • Untuk pengujian pengecualian, Anda dapat menggunakan
    • Parameter opsional (diharapkan) dari anotasi @test dan
    • Untuk melacak informasi, “fail()” dapat digunakan