관리 메뉴

Mini

Java sout 테스트하는 방법 본문

Java

Java sout 테스트하는 방법

Mini_96 2023. 11. 12. 14:19

1. ByteArrayOutputStream에 출력물담기

2. assertThat(msg.toString.contain)로 비교하면된다.

package christmas.view;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

class OutputViewTest {

    private static ByteArrayOutputStream outputMessage;

    @BeforeEach
    void setUpStreams() {
        outputMessage = new ByteArrayOutputStream(); // OutputStream 생성
        System.setOut(new PrintStream(outputMessage)); // 생성한 OutputStream 으로 설정
    }

    @AfterEach
    void restoresStreams() {
        System.setOut(System.out); // 원상복귀
    }

    @Test
    void 메뉴출력테스트() {
        OutputView.printOrderList(new String[]{"티파스-1", "제로콜라-1"});
        Assertions.assertThat(outputMessage.toString().contains("<주문 메뉴>\n티파스 1개\n제로콜라 1개"));
    }
}