Heim >Java >javaLernprogramm >Wie teste ich die Konsolenausgabe in JUnit?

Wie teste ich die Konsolenausgabe in JUnit?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-22 07:02:30541Durchsuche

How to Test Console Output in JUnit?

Konsolenausgabe in JUnit testen

Beim Testen älterer Anwendungen mit schlechtem Design stoßen Sie möglicherweise auf Code, der Fehlermeldungen in die Standardausgabe schreibt. Um eine solche Konsolenausgabe in JUnit zu bestätigen, benötigen Sie eine Möglichkeit, die Ausgabe umzuleiten und zu erfassen.

Konsolenausgabe umleiten

Das Java-System kann so konfiguriert werden, dass Konsolenausgaben gesendet werden zu bestimmten Streams. Wir können diesen Mechanismus nutzen, um die Ausgabe zu erfassen und zu testen.

Ausgabe mit ByteArrayOutputStream erfassen

Ein ByteArrayOutputStream kann zum Erfassen der Konsolenausgabe verwendet werden. Dazu ersetzen wir die Standard-Ausgabestreams durch neue Streams, die in den ByteArrayOutputStream schreiben.

Beispiel:

private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
private final ByteArrayOutputStream errContent = new ByteArrayOutputStream();
private final PrintStream originalOut = System.out;
private final PrintStream originalErr = System.err;

@Before
public void setUpStreams() {
    System.setOut(new PrintStream(outContent));
    System.setErr(new PrintStream(errContent));
}

@After
public void restoreStreams() {
    System.setOut(originalOut);
    System.setErr(originalErr);
}

Konsolenausgabe testen

Sobald die Ausgabe erfasst ist, können wir ihren Inhalt mit der Funktion „assertEquals()“ von JUnit bestätigen. Methode.

Beispieltestfälle:

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

@Test
public void err() {
    System.err.print("hello again");
    assertEquals("hello again", errContent.toString());
}

Schlussfolgerung

Durch Umleiten der Konsolenausgabe an ByteArrayOutputStreams und Verwendung von System. Mit setXXX() zum Konfigurieren der System-Streams können Sie die Konsolenausgabe in Ihren JUnit-Tests effektiv testen und bestätigen.

Das obige ist der detaillierte Inhalt vonWie teste ich die Konsolenausgabe in JUnit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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