Junit5
Junitμ Javaμ λ¨μ ν μ€ν λꡬμ΄λ€.
λ¨μ ν μ€νΈ Frameworkμ€ νλ
λ¨μ λ¬ΈμΌλ‘ Test Case μνκ²°κ³Όλ₯Ό νλ³
AnnotationμΌλ‘ κ°κ²°νκ² μ¬μ© κ°λ₯
JUnit5
Junit5λ μ΄μ λ²μ κ³Ό λ€λ₯΄κ² 3κ°μ μλΈ νλ‘μ νΈ λͺ¨λλ‘ μ΄λ£¨μ΄μ Έμλ€.
JUnit Platform : TestEngine API, Console Launcher, JUnit 4 based Runner λ± ν¬ν¨
JUnit Jupiter : TestEngine API ꡬνμ²΄λ‘ JUnit 5 ꡬν
JUnit Vintage : TestEngine API ꡬνμ²΄λ‘ JUnit 3, 4 ꡬν
Junit5μμ JUnit Vintage λͺ¨λμ ν¬ν¨νκ³ μμ΄ JUnit 3,4λ μ¬μ©ν μ μμ§λ§, μλ²½νκ² μ§μν΄μ£Όλ κ²μ μλλ€.
Dependencies
spring boot 2.2.0 μ΄ν λ²μ μμλ Junit5κ° κΈ°λ³ΈμΌλ‘ λ³κ²½λμλ€. Junit5λ Java8 λΆν° μ§μνλ©°, μ΄μ λ²μ μΌλ‘ μμ±λ ν μ€νΈ μ½λμ¬λ μ»΄νμΌμ΄ μ§μλλ€.
SpringBoot 2.2.0 μ΄μ λ²μ μμ junit5 μ€μ
maven
gradle
ν
μ€νΈλ₯Ό ꡬμ±νκ³ , νλ μμν¬λ₯Ό μμνκΈ° μν μ΄λ
Έν
μ΄μ
μ μ§μνλ€. λλΆλΆ μ΄λ
Έν
μ΄μ
μ junit-jupiter-api
λͺ¨λμ org.junit.jupiter.api
ν¨ν€μ§μμ μ‘΄μ¬νλ€.
μ©μ΄
ν
μ€νΈ ν΄λμ€
μ΅μμ ν΄λμ€, μ€νν± λ©€λ² ν΄λμ€, @Nested
ν΄λμ€μ μ μ΄λ νκ°μ @Test
μ΄λ
Έν
μ΄μ
μ΄ λ¬λ¦° ν
μ€νΈ λ©μλκ° ν¬ν¨λμ΄μλ ν΄λμ€λ₯Ό λ§νλ€. ν
μ€νΈ ν΄λμ€λ abstract
μ΄λ©΄ μλκ³ , νλμ μμ±μκ° μ‘΄μ¬ν΄μΌνλ€.
ν
μ€νΈ λ©μλ
μλ λ©ν μ΄λ
Έν
μ΄μ
μ΄ λΆμ¬μ§ λ©μλλ₯Ό λ§νλ©°, ν
μ€νΈ λ©μλλ ν
μ€νΈ ν ν΄λμ€, μμν λΆλͺ¨ ν΄λμ€, μΈν°νμ΄μ€μ μ μΈλλ€. abstract
λ₯Ό μ μΈν΄μλ μλλ©°, μ΄λ ν κ°λ λ°νλλ©΄ μλλ€.
@Test
@RepetedTest
@ParameterizedTest
@TestFactory
@TestTemplate
λΌμ΄ν μ¬μ΄ν΄ λ©μλ
μλ λ©ν μ΄λ
Έν
μ΄μ
μ΄ λΆμ¬μ§ λ©μλλ₯Ό λ§νλ©°, ν
μ€νΈ λ©μλλ ν
μ€νΈ ν ν΄λμ€, μμν λΆλͺ¨ ν΄λμ€, μΈν°νμ΄μ€μ μ μΈλλ€. abstract
λ₯Ό μ μΈν΄μλ μλλ©°, μ΄λ ν κ°λ λ°νλλ©΄ μλλ€.
@BeforeAll
@AfterAll
@BeforeEach
@AfterEach
Dependency Injection
Junit Jupiterμ μ£Όλ λ³νλ‘ ν μ€νΈ ν΄λμ€μ μμ±μ λ©μλκ° νλΌλ―Έν°λ₯Ό κ°μ§ μ μκ² λμλ€. μ΄λ μ½λμ μ μ°ν¨μ΄ μ¦κ°ν λΏλ§ μλλΌ, μμ‘΄μ± μ£Όμ λν κ°λ₯νκ² λμλ€.
ParameterResolver
λ μ€ν μκ° λμμ λμ μΌλ‘ νλΌλ―Έν°λ₯Ό ν΄μν μ μλ APIλ₯Ό μ μνκ³ μλ€. νμ¬ μλμΌλ‘ λ±λ‘λλ 3κ°μ Resolverκ° μλ€.
TestInfoParameterResolver
TestInfo
Resolverμ΄λ€.
TestInfo
κ°μ²΄λ ν
μ€νΈ ν΄λμ€, λ©μλλͺ
, λμ€νλ μ΄λͺ
κ³Ό κ°μ νμ¬ ν
μ€νΈμ λν μ 보λ₯Ό κ°μ§κ³ μλ€.
RepetitionInfoParameterResolver
λ°λ³΅ μ€ν κ°λ₯ν λ©μλ(@RepeatedTest
,@BeforeEach
,@AfterEach
)μ κ°μ λ©μλ μ 보λ₯Ό κ°μ§λ RepetionInfo
κ°μ²΄μ λν Resolverμ΄λ€.
TestReporterParameterResolver
νμ¬ μ€ννλ ν
μ€νΈμ λν μΆκ° μ 보λ₯Ό νμν μ μλ TestReporter
κ°μ²΄μ λν Resolverμ΄λ€.
TestInfo
λ©μλλͺ
νμ
μ€λͺ
getDisplayName()
String
@DisplayName κ°μ΄λ λμΌ
getTags()
Set<String>
@Tag λ°°μ΄ κ°
getTestClass()
Optional<Class<?>>
ν¨ν€μ§ + ν μ€νΈ ν΄λμ€λͺ
getTestMethod()
Optional<Method>
ν¨ν€μ§λͺ + ν μ€νΈ ν΄λμ€λͺ + ν μ€νΈ λ©μλ
RepetitionInfo
λ©μλλͺ / λ³μλͺ
νμ
μ€λͺ
getCurrentRepetition()
int
νμ¬ λ°λ³΅ νμ
getTotalRepetitions()
int
μ΄ λ°λ³΅ νμ
DISPLAY_NAME_PLACEHOLDER
String
@DisplayName κ°
SHORT_DISPLAY_NAME
String
λ°λ³΅ν λ λνλλ ν μ€νΈλͺ κΈ°λ³Έκ° : "repetition " + νμ¬ λ°λ³΅ νμ + " of " + μ΄ λ°λ³΅ νμ
LONG_DISPLAY_NAME
String
DISPLAY_NAME_PLACEHOLDER + " :: " + SHORT_DISPLAY_NAME
TOTAL_REPETITIONS_PLACEHOLDER
String
νμ¬ λ°λ³΅ νμ
CURRENT_REPETITION_PLACEHOLDER
String
μ΄ λ°λ³΅ νμ
TestInfoParameterResolver
Last updated
Was this helpful?