시작하기무료로 시작하기

예외 처리: 메시지 처리

예외를 사용하고 처리하는 일은 코드를 작성하는 데 필수적이며, 이러한 예외를 테스트하는 것도 프로젝트 테스트에 매우 중요해요.

이번 연습 문제에서는 JUnit의 클래스 인스턴스 단언 문법을 연습해 볼 거예요. 문자열을 대문자로 변환하지만, 문자열이 null이면 커스텀 RuntimeException을 던지는 메서드가 주어져 있어요. 여기에 대한 단위 테스트를 작성하세요.

이 연습은 강의의 일부입니다

Java 테스트 소개

강의 보기

연습 안내

  • 성공 시나리오 테스트에서 메시지가 대문자로 변환되었는지 단언하세요.
  • 발생한 예외가 RuntimeException 클래스의 인스턴스인지 검증하기 위해 알맞은 종류의 단언을 사용하세요.
  • 예외의 예상 클래스 값을 입력하세요.
  • 예외 메시지를 검증하기 위한 올바른 단언을 사용하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

public class Main {
    public static void main(String[] args) {
		launchTestsAndPrint(MessageProcessorTest.class);
    }
}

class MessageProcessorTest {

    @Test
    void processMessage_returnsUppercase() {
        String message = "error!";
        String expected = "ERROR!";

        String actual = MessageProcessor.processMessage(message);
		
        // Assert the message is converted to uppercase
        ____(expected, actual);
    }

    @Test
    void processMessage_throwsException_whenMessageIsNull() {
        String message = null;
        Exception expectedException = null;

        try {
        	MessageProcessor.processMessage(message);
        } catch (Exception e) {
        	expectedException = e;
        }
        // Assert the correct type of exception
        ____(RuntimeException.class, expectedException);
        // Assert the correct exception message
        ____("Message cannot be null.", expectedException.getMessage());
    }
}
코드 편집 및 실행