ν μ€νΈ μ½λλ₯Ό μμ±νλ μ΄μ
- κ°λ° κ³Όμ μμ λ¬Έμ λ₯Ό 미리 λ°κ²¬ν μ μλ€.
- 리ν©ν λ§μ 리μ€ν¬κ° μ€μ΄λ λ€.
- μ ν리μΌμ΄μ μ κ°λν΄μ μ§μ ν μ€νΈνλ κ²λ³΄λ€ ν μ€νΈλ₯Ό λΉ λ₯΄κ² μ§νν μ μλ€.
- νλμ λͺ μΈ λ¬Έμλ‘μμ κΈ°λ₯μ μννλ€.
- λͺ κ°μ§ νλ μμν¬μ λ§μΆ° ν μ€νΈ μ½λλ₯Ό μμ±νλ©΄ μ’μ μ½λλ₯Ό μμν μ μλ€.
- μ½λκ° μμ±λ λͺ©μ μ λͺ ννκ² ννν μ μμΌλ©°, λΆνμν λ΄μ©μ΄ μΆκ°λλ κ²μ λ°©μ§νλ€.
κ°λ° κ³Όμ μμ λ¬Έμ λ₯Ό 미리 λ°κ²¬ν μ μλ€.
리ν©ν λ§μ 리μ€ν¬κ° μ€μ΄λ λ€.
λͺ μΈ λ¬Έμλ‘μμ κΈ°λ₯μ μννλ€.
λ¨μ ν μ€νΈ & ν΅ν© ν μ€νΈ
λ¨μ ν μ€νΈ
λ©μλ λ¨μλ‘ ν μ€νΈλ₯Ό μν
- μλν κ²°κ΄κ°μ΄ λμ€λμ§ νμΈ
- ν μ€νΈ λΉμ©μ΄ μ μ
ν΅ν© ν μ€νΈ
μ¬λ¬ λͺ¨λμ ν¨κ» ν μ€νΈν΄μ μ μ λ‘μ§ μνμ΄ κ°λ₯νμ§ νμΈ
- μ ν리μΌμ΄μ μ΄ μ¨μ ν λμνλμ§λ₯Ό ν μ€νΈ
- λͺ¨λ μ»΄ν¬λνΈκ° λμνκΈ° λλ¬Έμ λΉμ©μ΄ 컀μ§λ λ¨μ μ΄ μμ
ν μ€νΈ μ½λλ₯Ό μμ±νλ λ°©λ²
Given-When-Then ν¨ν΄
ν μ€νΈ μ½λλ₯Ό βλͺ μΈβ λ¬Έμμ μν μ μννλλ‘ νλ€.
Given
- ν μ€νΈλ₯Ό μννκΈ° μ μ νμν νκ²½μ μ€μ
When
- ν μ€νΈμ λͺ©μ μ 보μ¬μ£Όλ λ¨κ³
- μ€μ ν μ€νΈ μ½λκ° ν¬ν¨
Then
- ν μ€νΈμ κ²°κ³Όλ₯Ό κ²μ¦νλ λ¨κ³
- When λ¨κ³μμ λμ¨ κ²°κ΄κ°μ κ²μ¦νλ μμ μ μν
F.I.R.S.T μ λ΅
λΉ λ₯΄κ²(Fast)
- ν μ€νΈ μλλ λΉ λ₯΄κ² μ§νλΌμΌ νλ€.
κ³ λ¦½λ, λ 립μ (Isolated)
- νλμ λμμ λν΄μλ§ μνλΌμΌ νλ€.
- μΈλΆ μμ€λ₯Ό μ¬μ©ν΄μ μλλ€.
λ°λ³΅ κ°λ₯ν(Repeatable)
- μ΄λ€ νκ²½μμλ λ°λ³΅ κ°λ₯νλλ‘ μμ±ν΄μΌ νλ€.
μκ° κ²μ¦(Self-Validating)
- ν μ€νΈκ° μ±κ³΅νλμ§ μ€ν¨νλμ§ νμΈν μ μλ μ½λλ₯Ό ν¨κ» μμ±ν΄μΌ νλ€.
μ μμ(Timely)
ν μ€νΈ μ½λλ μ ν리μΌμ΄μ μ½λλ₯Ό ꡬννκΈ° μ μ μμ±λΌμΌ νλ€.
JUnitμ νμ©ν ν μ€νΈ μ½λ μμ±
JUnitμ ꡬμ±
JUnit Platform
- ν μ€νΈ μμ§μ μΈν°νμ΄μ€λ₯Ό κ°μ§
- ν μ€νΈλ₯Ό λ°κ²¬νκ³ ν μ€νΈλ₯Ό μννλ©°, κ·Έ κ²°κ³Όλ₯Ό λ³΄κ³ νλ μν μ μν
JUnit Jupiter
- APIμ ꡬν체λ₯Ό ν¬ν¨
- Jupiter κΈ°λ°μ ν μ€νΈλ₯Ό μ€ννκΈ° μν ν μ€νΈ μμ§μ κ°μ§
JUnit Vintage
- ν μ€νΈ μμ§ APIλ₯Ό ꡬν
spring-boot-starter-test
μ§μ λΌμ΄λΈλ¬λ¦¬
- JUnit 5 : μλ° μ ν리μΌμ΄μ μ λ¨μ ν μ€νΈλ₯Ό μ§μνλ€.
- Spring Test & Spring Boot Test : μ€νλ§ λΆνΈ μ ν리μΌμ΄μ μ λν μ νΈλ¦¬ν°μ ν΅ν© ν μ€νΈλ₯Ό μ§μνλ€.
- AssertJ : λ€μν λ¨μ λ¬Έ(assert)μ μ§μνλ λΌμ΄λΈλ¬λ¦¬
- Hamcrest : Matcherλ₯Ό μ§μνλ λΌμ΄λΈλ¬λ¦¬
- Mockito : μλ° Mock κ°μ²΄λ₯Ό μ§μνλ νλ μμν¬
- JSONassert : JSONμ© λ¨μ λ¬Έ λΌμ΄λΈλ¬λ¦¬
- JsonPath : JSONμ© XPathλ₯Ό μ§μνλ λΌμ΄λΈλ¬λ¦¬
JUnitμ μλͺ μ£ΌκΈ°
- @Test : ν μ€νΈ μ½λλ₯Ό ν¬ν¨ν λ©μλλ₯Ό μ μ
- @BeforeAll : μ 체 ν μ€νΈλ₯Ό μμνκΈ° μ μ νΈμΆλλ λ©μλλ₯Ό μ μ
- @BeforeEach : κ° ν μ€νΈ λ©μλκ° μ€νλκΈ° μ μ λμνλ λ©μλλ₯Ό μ μ
- @AfterAll : μ 체 ν μ€νΈλ₯Ό μ’ λ£νλ©΄μ νΈμΆλλ λ©μλλ₯Ό μ μ
- @AfterEach : κ° ν μ€νΈ λ©μλκ° μ’ λ£λλ©΄μ νΈμΆλλ λ©μλλ₯Ό μ μ
Uploaded by N2T
'Programming > [Spring Boot]' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Spring Data JPA] - 쿼리 λ©μλμ 쑰건μ ν€μλ (0) | 2023.03.29 |
---|---|
ν μ€νΈ μ£Όλ κ°λ°(TDD) (0) | 2023.03.16 |
컨νΈλ‘€λ¬ ν μ€νΈ μ½λ μμ± (0) | 2023.03.16 |
Gson (0) | 2023.03.16 |
μλΉμ€ ν μ€νΈ μ½λ μμ± (0) | 2023.03.16 |