Junit5
์๋ฐ ํ๋ก๊ทธ๋๋ฐ์ฉ Unit ํ ์คํธ ํ๋ ์์ํฌ
๋ฐํ์์ Java 8์ด์์ด ํ์ํ๋ฉฐ ์ปดํ์ผ ํ์์์ JAR๋ก์ ๋งํฌ๋๋ค.
Spring Boot๋ฅผ ์ด์ฉํ๋ฉด ๋ด๋ถ์ dependency๊ฐ ํฌํจ๋์ด ์๋ค.
๊ตฌ์กฐ
JUnit Platform : ํ ์คํธ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๊ณํ์ ์์ฑํ๋
TestEngine
์ธํฐํ์ด์ค๋ฅผ ๊ฐ๊ณ ์๋ค.์ด๋ฅผ ํตํด ํ ์คํธ๋ฅผ ๋ฐ๊ฒฌ,์คํ,๋ณด๊ณ ํ๋ค.
JUnit Jupiter : TestEngine์ ์ค์ ๊ตฌํ์ฒด๋ ๋ณ๋ ๋ชจ๋์ค ํ๋๋ก
Juptier-API
๋ฅผ ์ด์ฉํ ํ ์คํธ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์คํJupiter API๋ JUnit5์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ํ ์คํธ ์ฝ๋์ฉ API
JUnit Vintage : ๊ธฐ์กด ๋ฒ์ ์ผ๋ก ์์ฑํ ํ ์คํธ ์ฝ๋๋ฅผ ์คํํ ๋ ์ด ๋ชจ๋์ ์ด์ฉ
Assertion
Assertion์ ๊ธฐ๋ณธ์ ์ธ๊ฒ๋ง ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ AssertJ
์ ๊ฐ์ ๊ฒ๋ค์ ์ถ๊ฐ๋ก ์ฌ์ฉํ ์๋ ์๋ค.
assertThat / assertTrue : ์ ์ ์กฐ๊ฑด ๊ฒ์ฆ
assertAll() : ์ ์ฒด ์คํ
assertThrows/assertDoesNotThrow() : ์์ธ์ํ ๊ฒ์ฆ
assertTimeout() : ํ
์ด๋
ธํ
์ด์
โพ @Ignore
ํ ์คํธ๋ก ์์ฐ์ด๋ ํด๋์ค
ํ ์คํธ๋ด ์ค๋ณต ์ฝ๋์ ๊ฑฐ๋ฅผ ์ํด ํด๋์ค ์์์ ์ด์ฉํ์ฌ ๋ง๋ค๋ ์ฌ์ฉํด์ฃผ์ด์ผํ๋ค.
โพ @Test
ํ ์คํธ ๋ฉ์๋ ์์ ์๋ฆฌ๋ ์ด๋ ธํ ์ด์
โพ @ParameterizedTest
๋งค๊ฐ ๋ณ์ํ ๋ ํ ์คํธ
โพ @TestFactory
๋์ ํ ์คํธ๋ฅผ ์ํ ํ ์คํธ ํฉํ ๋ฆฌ
โพ @DisplayName
ํด๋น ํ ์คํธ ํด๋์ค or ๋ฉ์๋์ console์ ๋ณด์ฌ์ง๋ ์ด๋ฆ์ ์ ์
โพ @DisplayNameGenration
ํ ์คํธ ํด๋์ค์ ๋ํด ์ฌ์ฉ์ ์ ์ ์ด๋ฆ์ ์ ์ธ
โพ @Disabled
ํ ์คํธ ํด๋์ค or ๋ฉ์๋๋ฅผ ๋นํ์ฑํ
โพ @BeforeEach / @BeforeAll
@Test, @RepeatedTest, @Parameterized, @TestFactory๊ฐ ๋ถ์ ๋ฉ์๋ ์ ์ ์คํ๋๋ ํ ์คํธ
โพ @AfterEach / @AfterAll
@Test, @RepeatedTest, @Parameterized, @TestFactory๊ฐ ๋ถ์ ๋ฉ์๋ ํ์ ์คํ๋๋ ํ ์คํธ
โพ @Nested
ํ ์คํธ ํด๋์ค์์์ ๋ด๋ถ ํด๋ ์ค๋ฅผ ์ ์
โพ @Repeated Test
๋ฐ๋ณต ํ ์คํธ๋ฅผ ์ํ ํ ์คํธ ํ ํ๋ฆฟ์์ ์๋ฆผ
โพ @Tag
ํํฐ๋ง์ ์ํ ํ๊ทธ
โพ @TestInstance(TestInstance.LifeCycle.PER_CLASS)
ํ ์คํธ ๋ฉ์๋๊ฐ์ ์ํ๋ฅผ ์ ์งํด์ฃผ๋ ์ด๋ ธํ ์ด์
โพ @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@Order() : ๋ฉ์๋๊ฐ ์์๋ฅผ ์ง์ ํด์ค ์ ์๋ฐ.
Refernce
https://reiphiel.tistory.com/entry/junit5-features
Last updated