Heim > Java > javaLernprogramm > Wie kann JUnit die Ausgabe von „System.out.println()' effektiv testen?

Wie kann JUnit die Ausgabe von „System.out.println()' effektiv testen?

Linda Hamilton
Freigeben: 2024-12-28 16:17:54
Original
177 Leute haben es durchsucht

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

JUnit-Tests für die Ausgabe von System.out.println()

In älteren Anwendungen kann die Fehlerbehebung schwierig sein, wenn man sich ausschließlich auf Standardfehlermeldungen verlässt auf der Konsole gedruckt. Um dies zu mildern, stellt JUnit Methoden zum Erfassen und Bestätigen der Konsolenausgabe bereit.

Um die Ausgabe von System.out.println() zu testen, sollten Sie den folgenden Ansatz in Betracht ziehen:

  1. Output Capture initialisieren:

    • ByteArrayOutputStream-Objekte erstellen (z. B. outContent und errContent), um Ausgabe- und Fehlerströme zu speichern.
    • Verwenden Sie System.setOut(new PrintStream(outContent)) und System.setErr(new PrintStream(errContent)), um Konsolenströme zu diesen Objekten umzuleiten.
  2. Ausführen Tests:

    • Rufen Sie System.out.println(output) oder System.out.print(output) in der Testmethode auf, um die beabsichtigte Ausgabe zu erfassen.
  3. Assert-Ausgabe:

    • Verwenden Sie die Methode „asserEquals(expected,actual)“ zum Vergleichen der erfassten Ausgabe (outContent oder errContent) mit der erwarteten Ausgabe.

Beispieltestfälle:

@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());
}
Nach dem Login kopieren

Hinweis: Stellen Sie sicher, dass System.setOut() und System.setErr() aufgerufen werden werden nach jedem Test mit originalOut und originalErr zurückgesetzt. Andernfalls kann es bei nachfolgenden Tests zu NullPointerExceptions kommen.

Das obige ist der detaillierte Inhalt vonWie kann JUnit die Ausgabe von „System.out.println()' effektiv testen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage