Rumah > Java > javaTutorial > Bagaimana untuk Menguji Kod yang Menggunakan System.exit() dengan Berkesan?

Bagaimana untuk Menguji Kod yang Menggunakan System.exit() dengan Berkesan?

Susan Sarandon
Lepaskan: 2024-11-16 17:01:03
asal
648 orang telah melayarinya

How to Effectively Test Code that Uses System.exit()?

Kaedah Pengujian yang Menggunakan System.exit()

Dalam pembangunan perisian, keupayaan untuk mengendalikan kes luar biasa adalah penting. Bayangkan menemui kaedah yang menamatkan Mesin Maya Java (JVM) menggunakan System.exit() semasa melaksanakan ujian. Malangnya, gelagat ini menimbulkan cabaran untuk menguji rangka kerja seperti JUnit, yang berakhir lebih awal apabila menghadapi panggilan sedemikian.

Pelbagai pendekatan telah dicadangkan untuk menangani cabaran ini. Satu pilihan melibatkan menggantikan System.exit() dengan pengendali pengecualian. Ini membolehkan pelari ujian menangkap pengecualian, mencatat kegagalan dan meneruskan ujian yang selebihnya.

Kaedah alternatif melibatkan menghalang System.exit() daripada keluar dari JVM. Dengan memanfaatkan pengurus keselamatan yang menyekat panggilan keluar, ujian boleh terkandung dalam sempadannya. SecurityException yang ditangkap kemudiannya boleh memberikan maklumat tentang status percubaan keluar.

Bagi mereka yang menggunakan JUnit 4.9 dan lebih baru, pertimbangkan untuk melaksanakan Peraturan Sistem. Koleksi peraturan ini menawarkan penyelesaian yang lebih elegan untuk menguji kod yang berinteraksi dengan Sistem. Peraturan ExpectedSystemExit, khususnya, membenarkan pengesahan kedua-dua status keluar dan kejadian.

Sebagai ilustrasi, pertimbangkan contoh kes ujian:

public class NoExitTestCase extends TestCase {

    public void testNoExit() throws Exception {
        System.out.println("Printing works");
    }

    public void testExit() throws Exception {
        try {
            System.exit(42);
        } catch (ExitException e) {
            assertEquals("Exit status", 42, e.status);
        }
    }
}
Salin selepas log masuk

Akhir sekali, ingat bahawa menetapkan sifat sistem - Djava.security.manager=allow adalah penting untuk keserasian dengan Java 21 apabila menggunakan pengurus keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Menguji Kod yang Menggunakan System.exit() dengan Berkesan?. 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