본문 바로가기
Spring

Parameterized Test를 이용해서 여러 값 검증하기

by e-pd 2021. 1. 16.

단순히 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