Rumah > Java > javaTutorial > Bagaimana untuk Menguji Kaedah yang Mencetuskan Panggilan `System.exit()` dalam JUnit?

Bagaimana untuk Menguji Kaedah yang Mencetuskan Panggilan `System.exit()` dalam JUnit?

Mary-Kate Olsen
Lepaskan: 2024-11-14 17:37:02
asal
852 orang telah melayarinya

How to Test Methods that Trigger `System.exit()` Calls in JUnit?

Cara Menangani Kaedah yang Mencetuskan Panggilan System.exit() dalam Ujian JUnit

Kaedah ujian yang menggunakan System.exit() menimbulkan cabaran dalam persekitaran JUnit kerana penamatan JVM. Untuk mengatasi halangan ini, pelbagai penyelesaian telah dicadangkan:

Pengecualian Gantian untuk System.exit()

Derkeiler.com mencadangkan meninggalkan System.exit() dan sebaliknya membuang pengecualian yang tidak disemak. Walaupun JUnit menangkap pengecualian ini, menyerlahkan kegagalan ujian, ia membenarkan pelaksanaan berterusan ujian berikutnya.

Ubah suai JUnit untuk Mencegah System.exit()

Dengan melaksanakan adat Kelas TestCase, NoExitTestCase, pengurus keselamatan boleh digunakan untuk menyekat System.exit() panggilan. Setelah mencetuskan percubaan keluar, SecurityException dilemparkan, membolehkan kes ujian mengendalikan dan mengesahkan status keluar yang dijangkakan.

Peraturan Sistem Leverage

Peraturan Sistem yang diperkenalkan dalam JUnit 4.9 menyediakan mekanisme untuk menguji kod yang berinteraksi dengan java.lang.System. Peraturan ExpectedSystemExit secara khusus membolehkan pengesahan panggilan System.exit(), membenarkan pemeriksaan kod status keluar.

Pertimbangan Tambahan

Apabila menguji kaedah yang menggunakan System.exit( ) dengan Java 21 atau lebih baru, sifat sistem -Djava.security.manager=allow mestilah ditetapkan untuk membolehkan penggunaan pengurus keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Menguji Kaedah yang Mencetuskan Panggilan `System.exit()` 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan