[java] JUnitParams에서의 파라미터화된 테스트 클래스를 작성하는 방법은 어떻게 되나요?

먼저 JUnitParams 라이브러리를 프로젝트에 추가해야합니다. 프로젝트의 build.gradle 파일에 다음과 같은 의존성을 추가해주세요:

dependencies {
    // other dependencies
    testImplementation 'pl.pragmatists:JUnitParams:1.1.1'
}

JUnitParams를 사용하여 파라미터화된 테스트 클래스를 작성하려면 @RunWith(Parameterized.class) 어노테이션을 테스트 클래스에 추가해야합니다. 그리고 테스트 메서드에 @Parameters 어노테이션을 추가하여 파라미터를 정의합니다.

예를 들어, 다음은 파라미터화된 테스트 클래스를 작성하는 예입니다:

import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
import org.junit.Test;
import org.junit.runner.RunWith;

import static org.junit.Assert.assertEquals;

@RunWith(JUnitParamsRunner.class)
public class CalculatorTest {
    
    @Test
    @Parameters({"2, 3, 5", "0, 0, 0", "-2, 3, 1"})
    public void testAdd(int a, int b, int expectedResult) {
        Calculator calculator = new Calculator();
        int result = calculator.add(a, b);
        assertEquals(expectedResult, result);
    }
}

위의 예제에서 @Parameters 어노테이션은 testAdd 메서드에 파라미터를 정의합니다. 각 파라미터는 쉼표로 구분된 값들에 대한 입력 매개변수입니다. 예를 들어, 첫 번째 파라미터인 "2, 3, 5"a에 2, b에 3, expectedResult에 5를 전달합니다. 이렇게 정의된 파라미터는 해당 테스트 메서드가 파라미터화된 테스트로 여러번 실행되고 각각의 결과를 확인할 수 있게 됩니다.

JUnitParams를 사용하면 매우 효율적으로 파라미터화된 테스트를 작성할 수 있습니다. 추가적으로 다양한 형식의 파라미터 정의 또한 가능하므로 필요에 따라 사용하실 수 있습니다.

참고 문서: