Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menguji Pengendalian Pengecualian dengan Berkesan dalam JUnit?

Bagaimanakah Saya Boleh Menguji Pengendalian Pengecualian dengan Berkesan dalam JUnit?

DDD
Lepaskan: 2024-12-20 05:49:10
asal
570 orang telah melayarinya

How Can I Effectively Test for Exception Handling in JUnit?

Menguji Pengendalian Pengecualian dalam JUnit

Dalam JUnit, menguji sama ada pengecualian khusus dilemparkan boleh dicapai dalam pelbagai cara.

JUnit 5 dan 4.13

Anotasi @Test kini menyokong atribut yang diharapkan, yang membolehkan anda menentukan jangkaan jenis pengecualian:

@Test(expected = IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {
    ArrayList emptyList = new ArrayList();
    Object o = emptyList.get(0);
}
Salin selepas log masuk

AssertJ atau Google Truth

Pustaka penegasan pihak ketiga seperti AssertJ dan Google Truth menyediakan sintaks yang lebih ringkas untuk ujian pengecualian:

// AssertJ
assertThatThrownBy(() -> foo.doStuff()).isInstanceOf(IndexOutOfBoundsException.class);

// Google Truth
assertWithMessage("Expected IndexOutOfBoundsException").thatExceptionOfType(IndexOutOfBoundsException.class).isThrownBy(() -> foo.doStuff());
Salin selepas log masuk

JUnit <= 4.12

Untuk JUnit 4.12 dan sebelum ini, terdapat beberapa pilihan:

  1. Bendera Boolean: Serupa dengan kod dalam soalan asal.
  2. @Peraturan: The Anotasi @Rule boleh digunakan untuk mencipta peraturan ujian yang menegaskan pengecualian adalah dilemparkan.
  3. Penjodoh tersuai: Cipta pemadanan Hamcrest tersuai untuk menyemak sama ada pengecualian jenis tertentu telah dilemparkan.

Rujuk JUnit Test-FAQ untuk mendapatkan butiran lanjut tentang pilihan ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menguji Pengendalian Pengecualian dengan Berkesan dalam JUnit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan