흥미로운 요구 사항이 있습니다. 나는 어플리케이션에서 가능한 한 더 나은 테스트 케이스 커버리지를 원한다. 필자는 Parameterized Junit을 사용하여 여러 입력의 테스트 케이스를 실행하고 있습니다. 내 샘플 테스트 클래스는 다음과 같습니다.더 나은 JUnit 작성 매개 변수화 된 테스트 케이스
@Parameters
public static Collection<Object[]> testInputs()
{
return Arrays.asList({
{1, CoreMatchers.is(1)},
{2, CoreMatchers.is(2)}
});
}
@Test
public test()
{
myApp.run();
assertThat(myApp.getA(), matcher);
}
이렇게하면 테스트 매개 변수로 논리 논리를 정의했습니다. 이제 테스트 케이스에서 여러 matcher를 실행하려고합니다. 그 중 일부는 내가 작성한 맞춤 matchers가 될 수 있습니다.
@Parameters
public static Collection<Object[]> testInputs()
{
return Arrays.asList({
{1, Arrays.asList(CoreMatchers.is(1), CustomMatchers.status(1)) },
{2, Arrays.asList(CoreMatchers.is(2), CustomMatchers.status(2)) }
});
}
그리고 주장
는 같다 :for(Matcher<MyApp> matcher: matchers)
{
assertThat(myApp, matcher);
}
그러나 문제는, 모두 매처 (matcher)는 다른 개체에서 실행됩니다. 내 CustomMatcher를 정의 할 수있는 가장 좋은 방법은 무엇입니까 ??
정규 표현식의 유형별로 어설 션을 분류해야합니까?
어떤 도움을 주셔서 감사합니다. 미리 감사드립니다.