JUnitParams 라이브러리 사용을 고려할 수 있으므로 몇 가지 더 깨끗한 옵션이 있습니다.
@org.junit.runner.RunWith(junitparams.JUnitParamsRunner.class)
public class ParameterizedTest {
@org.junit.Test
@junitparams.Parameters(method = "data")
public void test1(File file) throws Exception { }
@org.junit.Test
@junitparams.Parameters(method = "data")
public void test2(File file) throws Exception { }
public static File[] data() {
return new File[] { new File("path1"), new File("path2") };
}
}
@org.junit.runner.RunWith(junitparams.JUnitParamsRunner.class)
public class ParameterizedTest {
@org.junit.Test
@junitparams.Parameters(value = { "path1", "path2" })
public void test1(String path) throws Exception {
File file = new File(path);
}
@org.junit.Test
@junitparams.Parameters(value = { "path1", "path2" })
public void test2(String path) throws Exception {
File file = new File(path);
}
}
여기에서 더 많은 사용 샘플을 볼 수 있습니다 .
또한 JUnitParams에 대한, 그것으로 파라미터 테스트를을 writting 이유 것은 더 쉽고 읽을 수 :
JUnitParams 프로젝트는 JUnit에 새로운 실행기를 추가하고 JUnit> = 4.6에 대해 훨씬 쉽고 읽기 쉬운 매개 변수 테스트를 제공합니다.
표준 JUnit Parametrised 러너와의 주요 차이점 :
- 보다 명시 적-매개 변수는 클래스 필드가 아닌 테스트 메소드 매개 변수에 있습니다.
- 적은 코드-매개 변수를 설정하기 위해 생성자가 필요하지 않습니다.
- 한 클래스에서 매개 변수화되지 않은 메소드와 매개 변수화되지 않은 메소드를 혼합 할 수 있습니다.
- 매개 변수는 CSV 문자열 또는 매개 변수 제공자 클래스에서 전달할 수 있습니다.
- 매개 변수 제공자 클래스는 원하는만큼 메소드를 제공하는 매개 변수를 가질 수 있으므로 다른 케이스를 그룹화 할 수 있습니다.
- 매개 변수를 제공하는 테스트 메소드를 가질 수 있습니다 (더 이상 외부 클래스 또는 정적 없음).
- IDE에서 실제 매개 변수 값을 볼 수 있습니다 (JUnit의 Parametrised에서는 매개 변수의 연속 수만 표시됨)