Simulating System.in untuk Ujian JUnit
Menguji program baris arahan Java yang bergantung pada input pengguna daripada System.in boleh menimbulkan cabaran dalam kes ujian JUnit. Untuk mensimulasikan input pengguna, JUnit menyediakan mekanisme untuk menggantikan aliran input standard dengan aliran input yang boleh anda kawal dalam ujian anda.
Penyelesaian:
Anda boleh mensimulasikan System.in dengan mencipta String yang mengandungi input yang diingini dan menukarnya menjadi ByteArrayInputStream. Berikut ialah coretan kod contoh:
<code class="java">String data = "Hello, World!\r\n"; InputStream stdin = System.in; try { System.setIn(new ByteArrayInputStream(data.getBytes())); Scanner scanner = new Scanner(System.in); System.out.println(scanner.nextLine()); } finally { System.setIn(stdin); }</code>
Kod ini akan menangkap input daripada ByteArrayInputStream dan mensimulasikannya sebagai input daripada pengguna apabila program dijalankan. Di dalam blok cuba-dengan-sumber, anda boleh mengakses input simulasi menggunakan kelas Pengimbas.
Nota: Biasanya disyorkan untuk mengasingkan panggilan terus ke System.in dalam kod anda untuk meningkatkan kebolehujian. Ini boleh dicapai melalui suntikan kebergantungan atau teknik amaran lain.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengejek Input Pengguna daripada System.in untuk Ujian JUnit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!