[java] JUnitParams를 사용하여 복합적인 테스트 케이스를 작성하는 방법은 어떻게 되나요?
먼저, Maven이나 Gradle과 같은 빌드 도구를 이용하여 JUnitParams를 프로젝트에 추가해야 합니다. 그런 다음, 테스트 메서드에 @RunWith(JUnitParamsRunner.class)
애노테이션을 추가하고, @Parameters
애노테이션으로 테스트에 사용할 매개변수를 지정합니다.
예를 들어, 사칙연산을 테스트하는 테스트 클래스를 작성한다고 가정해봅시다. additionTest
라는 메서드는 두 숫자를 더한 결과를 검증하는 테스트를 수행하는 것이고, multiplicationTest
라는 메서드는 두 숫자를 곱한 결과를 검증하는 테스트를 수행합니다.
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(JUnitParamsRunner.class)
public class CalculatorTest {
@Test
@Parameters({"2, 3", "-2, 3", "2, -3", "-2, -3"}) // 매개변수 조합
public void additionTest(int a, int b) {
Calculator calculator = new Calculator();
int result = calculator.add(a, b);
Assert.assertEquals(a + b, result);
}
@Test
@Parameters({"2, 3", "-2, 3", "2, -3", "-2, -3"}) // 매개변수 조합
public void multiplicationTest(int a, int b) {
Calculator calculator = new Calculator();
int result = calculator.multiply(a, b);
Assert.assertEquals(a * b, result);
}
}
위 예제에서는 @Parameters
애노테이션을 이용하여 additionTest
와 multiplicationTest
메서드에 동일한 매개변수 조합을 지정했습니다. 이렇게 지정된 매개변수는 각각의 테스트 메서드에서 사용되어 수행됩니다.
JUnitParams를 이용하면 매우 복잡한 테스트 케이스를 간결하고 가독성 좋게 작성할 수 있습니다. 매개변수 조합을 통해 특정 입력값에 대한 예외 상황을 검증하는 등 다양한 테스트 시나리오를 쉽게 다룰 수 있습니다.