[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 메소드 내에서 배열의 순서를 변경하면 됩니다.