[java] JUnit과 코드 커버리지 단위 설정하기

JUnit은 자바 개발자들이 자동화된 단위 테스트를 작성하고 실행할 수 있는 프레임워크입니다. JUnit을 사용하여 테스트 케이스를 작성하면, 개발 중에 코드의 동작을 확인할 수 있고, 버그를 더 빠르게 발견할 수 있습니다. 코드 커버리지는 테스트 스위트가 얼마나 코드를 완전하게 실행하는지 측정하는 지표입니다.

이 글에서는 JUnit을 사용하여 단위 테스트를 작성하고, 코드 커버리지를 측정하는 방법을 설명하겠습니다.

JUnit 테스트 작성하기

  1. JUnit을 프로젝트에 추가합니다. Maven을 사용하는 경우, pom.xml에 다음 의존성을 추가합니다:
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.7.0</version>
    <scope>test</scope>
</dependency>
  1. 테스트를 작성하려는 클래스와 동일한 패키지에 Test 접미사를 가진 새로운 클래스를 생성합니다. 예를 들어, Calculator 클래스의 테스트를 작성한다면 CalculatorTest 클래스를 생성합니다.

  2. @Test 어노테이션을 사용하여 테스트 메서드를 작성합니다. 예를 들어, Calculator 클래스의 add 메서드를 테스트하기 위해 다음과 같은 테스트 메서드를 작성할 수 있습니다:

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

public class CalculatorTest {

    @Test
    public void testAdd() {
        Calculator calculator = new Calculator();
        int result = calculator.add(2, 3);
        assertEquals(5, result);
    }
}
  1. 작성한 테스트를 실행합니다. 테스트 메서드를 우클릭하여 “Run As” -> “JUnit Test”를 선택하거나, Maven을 사용하는 경우 터미널에서 mvn test 명령을 실행합니다.

코드 커버리지 측정하기

코드 커버리지를 측정하기 위해 JaCoCo와 같은 도구를 사용할 수 있습니다. JaCoCo는 JUnit 테스트 실행 중에 코드의 실행되는 부분을 추적하여 커버리지 보고서를 생성해줍니다.

  1. 프로젝트에 JaCoCo를 추가합니다. Maven을 사용하는 경우, pom.xml에 다음 플러그인 설정을 추가합니다:
<plugins>
    ...
    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.7</version>
        <executions>
            <execution>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>report</id>
                <phase>test</phase>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    ...
</plugins>
  1. 테스트를 실행하고 JaCoCo 보고서를 생성합니다. 테스트를 실행하기 위해 Maven을 사용하는 경우, 터미널에서 mvn test 명령을 실행하고, 보고서는 target/site/jacoco/index.html 위치에 생성됩니다.

  2. 보고서를 열어서 코드 커버리지를 확인합니다. JaCoCo 보고서는 어떤 부분이 실행되었고, 어떤 부분이 놓친 것인지를 시각적으로 보여줍니다.

결론

JUnit을 사용하여 단위 테스트를 작성하고, JaCoCo를 사용하여 코드 커버리지를 측정하는 방법을 알아보았습니다. 이러한 도구들은 소프트웨어 개발 과정에서 품질을 향상시키고 버그를 더 빨리 발견할 수 있게 해줍니다. 적절한 테스트와 코드 커버리지 측정을 통해 안정적이고 견고한 애플리케이션을 개발할 수 있습니다.

참고 자료