우리 회사 동료는 012ub을 찾을 수있는 JUnit 용 TestNG 스타일의 무료 DataProvider를 작성했습니다.
우리는 매우 큰 프로젝트에서 그것을 사용하고 그것은 우리를 위해 잘 작동합니다. JUnit의 Parameterized
에 비해 몇 가지 장점이 있습니다. 개별 클래스의 오버 헤드를 줄이고 단일 테스트를 실행할 수 있기 때문입니다.
예는이
@DataProvider
public static Object[][] provideStringAndExpectedLength() {
return new Object[][] {
{ "Hello World", 11 },
{ "Foo", 3 }
};
}
@Test
@UseDataProvider("provideStringAndExpectedLength")
public void testCalculateLength(String input, int expectedLength) {
assertThat(calculateLength(input)).isEqualTo(expectedLength);
}
편집과 같은 : V1.7 이후, 또한 데이터 (문자열, 목록)을 제공하고 별도의 방법이되도록 제공 인라인 수있는 다른 방법을 지원합니다 꼭 필요한 것은 아닙니다.
전체 예제는 github의 매뉴얼 페이지에서 찾을 수 있습니다. 또한 유틸리티 클래스에서 공급자를 수집하고 다른 클래스에서 액세스하는 등의 몇 가지 기능을 추가로 제공합니다. 설명서 페이지는 매우 자세하게 설명되어 있으므로 질문에 대한 답변을 찾을 수있을 것입니다.
JUnit에는 매개 변수화 된 테스트가 있습니다. –
그러나 매개 변수화 된 JUnit 테스트를위한 Eclipse 통합이 끔찍하다는 것을주의해야한다. a) 단일 매개 변수 집합을 실행할 수 없습니다. b) 테스트 중에 실제로 실패한 매개 변수 (JUnit 창에서 [0], [1], [2]와 같은 것을 볼 수 있음)를 JUnit 창에서 알기 어렵습니다. – qqilihq
@qqqhhq JUnit 4.11에는 매개 변수화 된 테스트의 이름을 더 잘 지정하여 더 이상 이런 종류의 문제가 발생하지 않습니다. https://github.com/junit-team/junit/blob/master/doc/ReleaseNotes4.11.md – dkatzel