Mensimulasikan Input Pengguna dalam System.in untuk Pengujian JUnit
JUnit menawarkan rangka kerja ujian yang mantap untuk aplikasi Java, membolehkan pembangun mengesahkan fungsi kod . Walau bagaimanapun, program yang berinteraksi dengan System.in, seperti aplikasi baris arahan, memberikan cabaran unik untuk ujian. Artikel ini membincangkan cara untuk mensimulasikan input pengguna dalam System.in dalam kes ujian JUnit.
Penyelesaian
Mengubah suai System.in secara langsung boleh dilaksanakan secara teknikal tetapi tidak disyorkan. Sebaliknya, adalah lebih baik untuk melaksanakan lapisan tidak arah yang mengawal sumber input dalam aplikasi. Ini boleh dicapai melalui pelbagai kaedah:
Suntikan Kebergantungan
Rangka kerja suntikan Ketergantungan, seperti Spring atau Guice, membenarkan suntikan kebergantungan ke dalam kelas. Ini membolehkan sumber input dihantar sebagai kebergantungan, membolehkan ujian fleksibel dan penyahgandingan kod daripada sumber input tertentu.
Pengarah Input Manual
Untuk situasi di mana kebergantungan suntikan tidak praktikal, System.in boleh diubah hala secara manual menggunakan coretan kod berikut:
<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>
Dengan menggunakan teknik ini, pembangun boleh mensimulasikan input pengguna dalam System.in dengan berkesan semasa ujian JUnit, memastikan ujian menyeluruh bagi aplikasi baris arahan dan program dipacu input lain.
Atas ialah kandungan terperinci Bagaimana untuk Mensimulasikan Input Pengguna dalam System.in untuk Ujian JUnit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!