TIL - day10

정상화·2023년 3월 6일
0

TIL

목록 보기
6/46
post-thumbnail

테스트 자동화

입출력 자동화

TestUtil 클래스를 따로 만들어서 Scanner를 생성한다.
출력은 화면출력으로 가는 스트림을 빼돌리면 된다.


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner;

public class TestUtil {
    public static Scanner genScanner(String input) {
        return new Scanner(new ByteArrayInputStream(input.getBytes()));
    }

    public static ByteArrayOutputStream setOutToByteArray() {
        final ByteArrayOutputStream output = new ByteArrayOutputStream();
        System.setOut(new PrintStream(output));

        return output;
    }

    public static void clearSetOutToByteArray(ByteArrayOutputStream output) {
        System.setOut(new PrintStream(output));
        try {
            output.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

직접 입력하고 출력된 결과를 눈으로 확인하는 것보다 훨씬 빠르고 효율적이다.

테스트 코드

public class test{
	@Test
    public void 출력을_모니터에_하지_않고_문자열로_얻기() {
        ByteArrayOutputStream output = TestUtil.setOutToByteArray();
        System.out.print("안녕");
        String rs = output.toString();
        TestUtil.clearSetOutToByteArray(output);
    }

    @Test
    public void 스캐너에_키보드가_아닌_문자열을_입력으로_설정() {
        Scanner sc = TestUtil.genScanner("안녕");

        String cmd = sc.nextLine().trim();
        assertEquals("안녕", cmd);
    }
}

토스트 ui 라이브러리

텍스트 에디터를 직접 만드는 것은 시간이 오래걸린다. 미리 만들어진 라이브러리 중에 토스트ui를 이용하면 편리하게 마크다운 문법이 작성 가능한 에디터를 적용할 수 있다.
토스트 ui

profile
백엔드 희망

0개의 댓글