[java] JUnit으로 엣지 케이스 테스트하기

엣지 케이스는 소프트웨어의 경계 조건에 해당하는 특수한 입력이나 상황을 가리킵니다. 이러한 엣지 케이스는 프로그램의 로직이 제대로 동작하는지 확인하는 데 중요한 역할을 합니다. JUnit은 자바에서 유닛 테스트를 작성하는 데 많이 사용되며, 엣지 케이스 테스트에도 유용하게 사용될 수 있습니다.

이번 블로그 포스트에서는 JUnit을 사용하여 엣지 케이스를 테스트하는 방법에 대해 알아보겠습니다.

1. JUnit 설정하기

먼저, JUnit을 사용하기 위해 프로젝트에 JUnit 라이브러리를 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음과 같이 의존성을 추가하면 됩니다:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.7.0</version>
    <scope>test</scope>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 의존성을 추가하면 됩니다:

testImplementation 'org.junit.jupiter:junit-jupiter:5.7.0'

2. 엣지 케이스 테스트 작성하기

JUnit을 사용하여 엣지 케이스 테스트를 작성하는 것은 일반적인 유닛 테스트 작성과 크게 다르지 않습니다. 다만, 테스트 케이스에서 엣지 케이스를 고려하여 입력 파라미터나 기대 결과를 설정해주는 것이 중요합니다.

예를 들어, 정수를 입력받아 0으로 나누는 메서드를 테스트한다고 가정해봅시다. 이 경우, 엣지 케이스는 0을 입력하는 경우입니다. 아래는 JUnit을 사용하여 엣지 케이스를 테스트하는 코드 예시입니다:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class DivisorTest {

    @Test
    void testDivideByZero() {
        Divisor divisor = new Divisor();
        assertThrows(ArithmeticException.class, () -> {
            divisor.divide(10, 0);
        });
    }
}

위의 코드에서는 Divisor 클래스의 divide 메서드를 0으로 나누는 상황을 테스트하고 있습니다. assertThrows 메서드는 예외를 발생시켜야 테스트가 성공하는지를 확인합니다.

3. 테스트 실행하기

테스트를 실행하려면 JUnit을 실행하는 방법을 알아야 합니다. 대표적인 방법은 IDE의 테스트 실행 기능을 사용하거나, Maven이나 Gradle 같은 빌드 도구를 사용하여 테스트를 실행하는 방법이 있습니다.

IDE에서 테스트를 실행하는 경우, 해당 테스트 파일 또는 테스트 클래스를 선택하고 실행하면 됩니다. 빌드 도구를 사용하는 경우, 터미널 또는 명령 프롬프트에서 다음 명령을 실행하면 됩니다:

./mvnw test

또는

./gradlew test

테스트 실행 결과를 확인하여 엣지 케이스가 제대로 처리되었는지 확인할 수 있습니다.

4. 참고 자료