SeouliteLab

[Java/자바] JUnit을 활용한 Exception 테스트 본문

프로그래밍

[Java/자바] JUnit을 활용한 Exception 테스트

Seoulite Lab 2024. 3. 15. 09:19

JUnit을 사용하여 예외 상황을 테스트하는 방법을 알아보겠습니다. 예외 상황을 테스트함으로써 코드의 안정성을 높일 수 있고, 예상치 못한 상황에 대한 처리를 검증할 수 있습니다.

1. 예외가 발생하는 경우의 테스트

JUnit을 사용하여 특정 메소드가 예외를 발생시키는지를 테스트하는 예제입니다.

// JUnit 라이브러리 임포트
import org.junit.Test;
import static org.junit.Assert.*;

// 예외가 발생하는 경우의 테스트 예제
public class ExceptionTest {
    
    @Test(expected = ArithmeticException.class)
    public void testDivisionByZero() {
        Calculator calculator = new Calculator();
        calculator.divide(10, 0); // 0으로 나누는 경우 예외 발생
    }
}

위의 예제는 divide 메소드가 0으로 나누는 경우 ArithmeticException을 발생시키는지를 테스트합니다. @Test 어노테이션에 expected 속성을 사용하여 예상되는 예외를 명시했습니다. 따라서 해당 테스트 케이스는 ArithmeticException을 발생시켜야만 성공합니다.

2. 예외 메시지 비교

테스트하는 예외의 메시지를 비교하여 예외 테스트를 보다 정확하게 수행할 수 있습니다.

// 예외 메시지 비교하는 테스트 예제
public class ExceptionTest {
    
    @Test
    public void testExceptionMessage() {
        Calculator calculator = new Calculator();
        try {
            calculator.divide(10, 0); // 0으로 나누는 경우 예외 발생
            fail("Expected an ArithmeticException to be thrown");
        } catch (ArithmeticException e) {
            assertEquals("division by zero", e.getMessage());
        }
    }
}

위의 예제에서는 divide 메소드를 호출하여 예외가 발생하는 상황을 try-catch 블록으로 감쌌습니다. 예외가 발생하는 것을 예상하고, 예외 메시지를 비교하여 예외 테스트를 수행합니다.

3. 다양한 예외 테스트

다양한 예외 상황에 대한 테스트 케이스를 작성하여 코드의 안정성을 높일 수 있습니다. 예를 들어, 파일을 열거나 네트워크 연결을 시도할 때 발생할 수 있는 IOException 등에 대한 테스트도 필요합니다.

위에서는 JUnit을 사용하여 예외 상황을 테스트하는 방법에 대해 다뤄보았습니다. 예외를 효과적으로 처리하는 테스트 케이스를 작성함으로써 코드의 안정성을 높일 수 있습니다.