[java] JUnit 테스트 커버리지 측정하기

테스트 커버리지(Test Coverage)는 소프트웨어에서 테스트가 얼마나 코드를 커버하고 있는지를 나타내는 지표입니다. JUnit을 사용하여 자바 코드의 테스트 커버리지를 측정하는 방법에 대해 알아보겠습니다.

1. Jacoco 라이브러리 추가하기

먼저, 테스트 커버리지를 측정하기 위해 Jacoco 라이브러리를 프로젝트에 추가해야 합니다. 이를 위해 프로젝트의 pom.xml 파일에 다음 의존성을 추가합니다.

<build>
  <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>
      </executions>
    </plugin>
  </plugins>
</build>

2. 테스트 클래스 작성하기

JUnit으로 테스트할 코드에 대한 테스트 클래스를 작성합니다. 예를 들어, 다음과 같은 간단한 메서드를 테스트하는 클래스를 작성한다고 가정해보겠습니다.

public class Calculator {
  public int add(int a, int b) {
    return a + b;
  }
}

다음은 Calculator 클래스의 add 메서드를 테스트하는 JUnit 테스트 클래스입니다.

import org.junit.Test;
import static org.junit.Assert.*;

public class CalculatorTest {
  @Test
  public void testAdd() {
    Calculator calculator = new Calculator();
    int result = calculator.add(2, 3);
    assertEquals(5, result);
  }
}

3. 테스트 실행 및 커버리지 측정하기

테스트를 실행하고 커버리지를 측정하기 위해서는 Maven을 사용하여 다음 명령을 실행합니다.

mvn clean test

위 명령을 실행하면 테스트 클래스가 실행되고, Jacoco가 코드 커버리지를 측정합니다. 테스트 실행 후 target/site/jacoco/index.html 파일을 열어보면 커버리지 측정 결과를 확인할 수 있습니다.

결론

JUnit을 사용하여 자바 코드의 테스트 커버리지를 측정하는 방법을 간단히 알아보았습니다. 테스트 커버리지를 측정함으로써 코드의 품질을 향상시키고 안정성을 높일 수 있습니다. 추가로 Jacoco를 활용하면 좀 더 자세한 커버리지 결과를 확인할 수 있습니다.


참고: