[java] JUnitParams에서의 테스트 데이터 정렬 방법은 어떻게 되나요?
아래는 JUnitParams에서 테스트 데이터를 정렬하는 예시 코드입니다. 예시 코드는 간단한 숫자 배열을 정렬하는 테스트를 가정합니다.
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.Arrays;
@RunWith(JUnitParamsRunner.class)
public class SortingTest {
private Object[] testData() {
return new Object[]{
new Object[]{new int[]{5, 2, 3, 1, 4}, new int[]{1, 2, 3, 4, 5}},
new Object[]{new int[]{9, 7, 6, 8, 10}, new int[]{6, 7, 8, 9, 10}},
new Object[]{new int[]{2, 4, 6, 8, 10}, new int[]{2, 4, 6, 8, 10}}
};
}
@Test
@Parameters(method = "testData")
public void testSorting(int[] input, int[] expected) {
Arrays.sort(input);
Assert.assertArrayEquals(expected, input);
}
}
위의 코드에서 testData
메소드는 정렬되지 않은 입력 배열과 예상되는 정렬된 배열을 포함하는 테스트 데이터를 반환합니다. @Parameters
어노테이션은 testData
메소드를 테스트 메소드의 입력으로 사용하도록 지정합니다.
테스트는 입력 배열을 Arrays.sort
메소드를 사용하여 정렬한 후 expected
배열과 비교하여 예상한 결과를 확인합니다.
이 예시 코드를 실행하면 세 개의 테스트 케이스가 실행되고 테스트 데이터에서 지정한 순서대로 정렬 결과를 확인할 수 있습니다. 테스트 데이터를 정렬하려면 testData
메소드 내에서 배열의 순서를 변경하면 됩니다.