단순히 1,2,3,4 로 들어오는 값들 말고도
여러 파라미터가 들어왔을때 값을 검증할때는 Method Source를 이용하여 검증하면 좋다.
test class에서 검증할 값을 담은 method를 만들고 methodSource를 사용한다.
@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() {
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() {
return Stream.of(
Arguments.of("강남", true),
Arguments.of(null, false),
Arguments.of(" ", false)
);
}
'Spring' 카테고리의 다른 글
인터파크 API 사용하기 (0) | 2021.07.26 |
---|---|
@NotNull @NotEmpty @NotBlank (0) | 2021.01.16 |
Component Scan (0) | 2020.08.15 |
엑셀 업로드 (0) | 2020.05.31 |
Tiles 설정 (0) | 2019.12.11 |