JunitParams

https://www.petrikainulainen.net/programming/testing/junit-5-tutorial-writing-parameterized-tests/

ํ…Œ์ŠคํŠธ์—์„œ ์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ

   @Test
    public void testOffline(){
        //Given
        Event event = Event.builder()
                .location("๊ฐ•๋‚จ์—ญ")
                .build();
        //When
        event.update();
        //Then
        assertThat(event.isOffline()).isTrue();

        //Given
        event = Event.builder()
                .build();
        //When
        event.update();
        //Then
        assertThat(event.isOffline()).isFalse();
    }
}

์™€ ๊ฐ™์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ๋ฐ”๋€Œ๋Š” ์ƒํ™ฉ์—์„œ ์ฝ”๋“œ ์ค‘๋ณต์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

์›๋ž˜ JUnit๋ฉ”์„œ๋“œ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ–์ง€ ๋ชปํ•˜๋Š”๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ–์„์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

dependency ์ถ”๊ฐ€

์‚ฌ์šฉ๋ฒ•

Testํ•  class์— @RunWith(JUnitParamsRunner.class)์„ ์ถ”๊ฐ€ํ›„ ํ…Œ์ŠคํŠธํ•  ๋ฉ”์„œ๋“œ์— @CsvSource({})์„ ์ด์šฉํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ ์ด์šฉ

@CsvSource์–ด๋…ธํ…Œ์ด์…˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์•ˆ์˜ ๋ฐฐ์—ด์ˆ˜ ๋งŒํผ ํ…Œ์ŠคํŠธ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  @Test์–ด๋…ธํ…Œ์ด์…˜์ด ์•„๋‹Œ @ParameterizedTest ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์•ˆ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ name์„ ์ฃผ์–ด ํ…Œ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ž…๋ ฅํ•ด Type Safeํ•˜์ง€ ์•Š์•„ ๊ฑฑ์ •๋ ๋•Œ

๊ฐ์ฒด ๋ฐฐ์—ด์„ returnํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ์ฃผ์–ด ์‚ฌ์šฉ

์ด๋•Œ @MethodSource์–ด๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•˜์—ฌ ๋ฉ”์„œ๋“œ๋ฅผ ๋งตํ•‘์‹œ์ผœ์ฃผ๋ฉด๋œ๋‹ค.

์™ธ๊ตญ์—์„  ๊ฐ์ฒด ๋ฐฐ์—ด๋ณด๋‹ค๋Š” Stream์„ ์ฃผ๋กœ ์ด์šฉ

Last updated