개요
JUnit5에서 반복되는 테스트를 해결하기 위헤 @ParameterizedTest와 @CsvSource를 이용
@ParameterizedTest
@CsvSource(value = {"1", "2"})
void test(String input) {
}
Java
복사
List 형태의 인자를 넘기기 위해서 @CsvSource를 이용할 수 있는지, 없다면 무엇을 사용해야하는지 탐색
@ParameterizedTest
// ??
void test(List<String> input) {
}
Java
복사
@MethodSource
JUnit의 Jupiter에서 제공하는 @CsvSource는 문자열을 포함한 원시 타입만 지원
이에 따라 콜렉션을 구성하기 위해선 별도의 인자를 구성해야하고, 이 때 @MethodSource를 사용
@ParameterizedTest
@MethodSource("getArguments")
void test(List<String> input) {
}
Java
복사
@MethodSource에 기재하는 값은 인자를 구성할 메서드의 이름이고, Stream<Arguments>의 반환 타입
Arguments들은 마치 tuple처럼 동작하고, 구성 순서에 맞춰 테스트 메서드의 인자로 주입
private static Stream<Arguments> getArguments() {
return Stream.of(
Arguments.of(Arrays.asList("1", "2", "3")),
Arguments.of(Arrays.asList("4", "5", "6"))
);
}
Java
복사