-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
๐ง ์ค๋ช !
- ํ ์คํธ ์ฝ๋ ์์ฑ ๊ณํ์ ๊ตฌ์ํฉ๋๋ค.
ํตํฉ ํ ์คํธ
- ์ค์ ๊ฐ์ํ - ํตํฉํ ์คํธ์ ํ์ํ ์ค์ ์ ๋ฌถ์ด์ฃผ๊ธฐ(@IntegrationTestConfig) ๋ค๋ฅธ ์๋๋ฆฌ์ค์ ๋ํ ํ ์คํธ ์ฝ๋ ๊ฐํธํ๊ฒ ์์ฑ ๊ฐ๋ฅ
- MockMVC
- Web ์์ญ์ ํด๋์ค๋ฅผ ์ธ์คํด์คํ, API ํธ์ถ ๋ฐ ์๋ต ๊ฒ์ฆ
- ์ค์ ๋ฐฉ๋ฒ: MockMVC ์ธ์คํด์ค ์ง์ ์์ฑ or Spring Boot์์ ์ ๊ณต
- @AutoConfigureMockMvc
- ํธ์ถํ API์ ๋ํด ์ ์(Path, Request Spec, Expected Response)
- ํด๋น API ํธ์ถ๋ก ์ธํด ๋ณํ๊ฐ ์์๋๋ ๋ฐ์ดํฐ์ ๋ํ ๊ฒ์ฆ ์งํ
- Database
- ํ ์คํธ : H2 Database๋ฅผ ํ ์คํธ ์คํ ์์ ์ ๊ตฌ๋
- @activeprofiles(โtestโ)
- Redis
- EmbeddedRedis ์ฌ์ฉ
- SmartLifeCycle์ ํตํด Redis ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ
์ ์ฐจ
ํ ์คํธ ์ฝ๋ ๊ตฌ์ฑ ๋ฐฉ์
- Arrange(์ค๋น): ํ ์คํธ์ ํ์ํ ๋ณ์, ๊ฐ์ฒด ์์ฑ
- Act(์คํ): ํ ์คํธ ํ ์ฝ๋ ์คํ
- Assert(๊ฒ์ฆ): ๊ฒฐ๊ณผ๊ฐ ๊ฒ์ฆํ๊ธฐ
Arrange
- ์ด๊ธฐ ๋ฐ์ดํฐ ์ธํ
- ์ ์ ์ํ ๊ฒ์ฆ์ ์ํด ์ ์ ์กฐํ ์๋ต ์ค์
Act
- MockMVC
- Web ์์ญ์ ํด๋์ค๋ฅผ ์ธ์คํด์คํ, API ํธ์ถ ๋ฐ ์๋ต ๊ฒ์ฆ
- ์ค์ ๋ฐฉ๋ฒ: MockMVC ์ธ์คํด์ค ์ง์ ์์ฑ or Spring Boot์์ ์ ๊ณต
Assert
- Eventually ๊ฒ์ฆ
- ๊ณ ์ ๊ฐ์ด ์๋ ๋ก์ง์ ํ๊ณ ๋ง๋ค์ด์ง๋ ๊ฐ์ ์ง์ค (e.g 1000์ ์ ๊ธ API, ๊ฒฐ๊ณผ๋ ์ฒ์ ์ถ๊ฐ๋ ๊ฐ)
โ ํด์ผํ ์ผ!
- ์ํํด์ผ ํ๋ ์์๋๋ก ํน์ ์์ ์ ํฌํจํฉ๋๋ค.
- IntegrationTestConfig ์์ฑ
- MockMVC
- H2 Database
- EmbeddedRedis