Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mensimulasikan Input Pengguna dalam System.in untuk Ujian JUnit?

Bagaimana untuk Mensimulasikan Input Pengguna dalam System.in untuk Ujian JUnit?

Susan Sarandon
Susan Sarandonasal
2024-11-03 14:44:02521semak imbas

How to Simulate User Input in System.in for JUnit Testing?

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!

Kenyataan:
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