예외 처리: 메시지 처리
예외를 사용하고 처리하는 일은 코드를 작성하는 데 필수적이며, 이러한 예외를 테스트하는 것도 프로젝트 테스트에 매우 중요해요.
이번 연습 문제에서는 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());
}
}