Guide to JUnit 5 Parameterized Tests
Last updated
Last updated
참고 링크
기존에 유틸리티 함수가 있다고 생각하고, 해당 함수 동작에 대한 확신을 가지고 싶다.
매개변수화 된 테스트는 다른 테스트와 유사하지만, @ParameterizedTest
어노테이션을 추가한다.
아래 테스트는 결과적으로 @ValueSource
배열에서 각각의 값을 isOdd_ShouldReturnTrueForOddNumbers
매개변수(number
) 값으로 사용해 해당 테스트를 6번 실행한다.
지금까지 알고 있었겠지만 매개변수화 된 테스트는 서로 다른 인수를 사용하여 동일한 테스트를 여러 번 실행한다.
@ValueSource
를 사용하면 기본형 타입 값 배열을 테스트 메서드에 전달할 수 있습니다.
우리가 간단한 isBlank
메서드를 테스트할 것이라고 가정해 보자.
제약사항 중 하나는 @ValueSource
는 기본형 타입의 값만을 제공한다.
short
byte
int
long
float
double
char
java.lang.String
java.lang.Class
또한 테스트 메서드 하나에 하나의 타입 종류만 사용할 수 있다.
마지막으로 @ValueSource
를 통해서 null
을 전달할 수 없다.
JUnit 5.4부터 @NullSource
를 사용하여 매개변수화된 테스트 메서드에 단일 null
값을 전달할 수 있다.
기본형 타입을 매개변수로 받는 케이스는 @NullSource
를 사용할 수 없다.
때문에, 매우 유사한 방식으로 동작하는 @EmptySource
를 사용하여 빈 값을 전달할 수 있다.
null
값과 빈 값 모두를 전달하기 위해서는 @NullAndEmptySource
를 사용할 수 있다.
예를 들어서, 모든 월 숫자가 1~12 임을 확인할 수 있다.
또한 names
속성을 사용해 필터링을 할 수 있다.
...