/
NikolayIvkin
/
tutorials1
Обзор
Документация
Войти
/
NikolayIvkin
/
tutorials1
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
testing-modules/testing-libraries/src/test/java/com/baeldung/systemout/SystemOutPrintlnUnitTest.java
50 строк
1 KB
Jonathan Cook
BAEL-4341 - Add AfterEach annotation instead of BeforeEach on tearDown
13 авг 2020, 10:12
13 авг 2020, 10:12
bc23526
Код
Авторство
О чём код?
package com.baeldung.systemout; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.Assert; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static com.github.stefanbirkner.systemlambda.SystemLambda.tapSystemOut; class SystemOutPrintlnUnitTest { private final ByteArrayOutputStream outputStreamCaptor = new ByteArrayOutputStream(); private final PrintStream standardOut = System.out; @BeforeEach public void setUp() { System.setOut(new PrintStream(outputStreamCaptor)); } @AfterEach public void tearDown() { System.setOut(standardOut); } @Test void givenSystemOutRedirection_whenInvokePrintln_thenOutputCaptorSuccess() { print("Hello Baeldung Readers!!"); Assert.assertEquals("Hello Baeldung Readers!!", outputStreamCaptor.toString() .trim()); } @Test void givenTapSystemOut_whenInvokePrintln_thenOutputIsReturnedSuccessfully() throws Exception { String text = tapSystemOut(() -> { print("Hello Baeldung Readers!!"); }); Assert.assertEquals("Hello Baeldung Readers!!", text.trim()); } private void print(String output) { System.out.println(output); } }