티스토리 뷰

Java

[JUnit]System.out.println ()의 단위 테스트 예제

까오기 까오기 2021. 5. 7. 14:31

콘솔에 출력한 내용을 테스트하는 예제 입니다. 

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.function.Consumer;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class SysoutTest {

    final ByteArrayOutputStream outputStreamCaptor = new ByteArrayOutputStream();
    final PrintStream standardOut = System.out;

    @BeforeEach
    void setUp() {
        System.setOut(new PrintStream(outputStreamCaptor));
    }

    @AfterEach
    void tearDown() {
        System.setOut(standardOut);
    }

    @Test
    void consumer() {
        String name = "까오기";
        Consumer<String> c = nm -> System.out.println(nm+"님 안녕하세요.");
        c.accept(name);
        assertEquals("까오기님 안녕하세요.", outputStreamCaptor.toString().trim());
    }

}

예제 만으로 충분할 거 같아 설명은 생략합니다. 

댓글
댓글쓰기 폼