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!