Rumah > Java > javaTutorial > Bagaimanakah JUnit Boleh Menguji Output `System.out.println()` dengan Berkesan?

Bagaimanakah JUnit Boleh Menguji Output `System.out.println()` dengan Berkesan?

Linda Hamilton
Lepaskan: 2024-12-28 16:17:54
asal
195 orang telah melayarinya

How Can JUnit Effectively Test `System.out.println()` Output?

Junit Testing for System.out.println() Output

Dalam aplikasi warisan, penyelesaian masalah boleh menjadi mencabar apabila bergantung semata-mata pada mesej ralat standard dicetak ke konsol. Untuk mengurangkan ini, JUnit menyediakan kaedah untuk menangkap dan menegaskan output konsol.

Untuk menguji output System.out.println(), pertimbangkan pendekatan berikut:

  1. Mulakan Tangkapan Output:

    • Buat Objek ByteArrayOutputStream (cth., outContent dan errContent) untuk menyimpan strim output dan ralat.
    • Gunakan System.setOut(New PrintStream(outContent)) dan System.setErr(new PrintStream(errContent)) untuk mengubah hala strim konsol kepada ini objek.
  2. Laksanakan Ujian:

    • Panggil System.out.println(output) atau System.out.print (output) dalam kaedah ujian untuk menangkap yang dimaksudkan output.
  3. Assert Output:

    • Gunakan kaedah assertEquals(jangkaan, sebenar) untuk membandingkan output yang ditangkap ( outContent atau errContent) dengan jangkaan output.

Contoh Kes Ujian:

@Test
public void testOut() {
    System.out.print("hello");
    assertEquals("hello", outContent.toString());
}

@Test
public void testErr() {
    System.err.print("error occurred");
    assertEquals("error occurred", errContent.toString());
}
Salin selepas log masuk

Nota: Pastikan System.setOut() dan panggilan System.setErr() dikembalikan selepas setiap ujian menggunakan originalOut dan originalErr. Kegagalan berbuat demikian boleh membawa kepada NullPointerExceptions semasa ujian berikutnya.

Atas ialah kandungan terperinci Bagaimanakah JUnit Boleh Menguji Output `System.out.println()` 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