작성
·
596
18
@ParameterizedTest
@MethodSource("paramsForTestFree")
public void testFree(int basePrice, int maxPrice, boolean isFree) {
// given
Event event = Event.builder()
.basePrice(basePrice)
.maxPrice(maxPrice)
.build();
// when
event.update();
// then
assertThat(event.isFree()).isEqualTo(isFree);
}
@ParameterizedTest
@MethodSource("paramsForTestOffline")
void testOffline(String location, boolean isOffline) {
// given
Event event = Event.builder()
.location(location)
.build();
// when
event.update();
// then
assertThat(event.isOffline()).isEqualTo(isOffline);
}
private static Stream<Arguments> paramsForTestFree() { // argument source method
return Stream.of(
Arguments.of(0,0, true),
Arguments.of(100, 0, false),
Arguments.of(0, 100, false),
Arguments.of(100, 200, false)
);
}
private static Stream<Arguments> paramsForTestOffline() { // argument source method
return Stream.of(
Arguments.of("강남", true),
Arguments.of(null, false),
Arguments.of(" ", false)
);
}
JUNIT5를 이용하시는분들에게 도움이 되었으면 좋겠습니다.
답변 4
0
0
저처럼 헤매고 있으실 분이 있을 까봐 댓글 남깁니다.
저는 현재 Spring boot 2.7.4 사용중인데요,
해당 버전에 의존하고 있는 Junit5 버전은 5.8.2입니다.
따라서 pom.xml에서도
5.8.2 버전의 junit-jupiter-params을 등록해주어야 합니다.
그렇지 않다면 NoSuchMethodError를 겪으실 겁니다.
저처럼 mvnrepository에서 항상 최신거만 가지고 오시는 분들 중 오류가 나시는 분은 버전 확인해보시면 좋을 것 같습니다.
0
0