์ค๋๋ ํ๋ก์ ํธ๋ฅผ ์ค์ ์คํ ์งํํ์๊ณ , ์ค์ ์๋ ์ถํ ๋ฐฐํฌ์ ์์ด ํ์๋ฅผ ํ๋ ์๊ฐ์ ๊ฐ์ง๊ฒ ๋์๋ค.
์ค์ ์๊ฐ์๋, ๋ฐฐํฌ์ ๋ํ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฒฌ์ ๋๋์๊ณ ,
๋ฐฐํฌ๋ ๋ด๊ฐ ๋งก์์ ํ์๊ณ , CI / CD ๊ตฌ์ถ์ ์ํด GitHub Action, Jenkins ๋ฑ ๋ง์ ๋ฐฉ๋ฒ์ด ์กด์ฌ ํ์ต๋๋ค.
๊ฐ๋ฐ ํธ๋ ๋ ์์น์ ๋ง์ ๊ธฐ์
์์ Jenkins๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์ Jenkins ๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๊ณ ๋ฐฐํฌ๋ฅผ ์์ํ๊ฒ ๋๋ฉด ๋ธ๋ก๊น
ํ ๊ณํ ์
๋๋ค.
๋ด ๊ณํ์ AWS EC2 -> Docker -> Jenkins (์ ํจ์ค) ํ์ดํ ๋ผ์ธ ๊ตฌ์ถ์ ํ์ฌ ํ ๊ณํ์ด๋ฉฐ, ํ์ ์ค ํ๋ถ์ด ์ด๋ ๊ฒ ์งํ ํด๋ณธ ๊ฒฝํ์ด ์์ด ๋ชจ๋ฅด๋ ๋ถ๋ถ์ด ์์ผ๋ฉด ๋ฌผ์ด๋ณด๋ฉด์ ์งํ ํด์ผ ๋ ๊ฒ ๊ฐ๋ค.
Junit5 ์ Mockito ๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ์์ต๋๋ค.
ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ ์๋ฃ๋ฅผ ์ฐพ์ ํค์๋๋ค์ ๋ํ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค.
Mock๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ์์ค ์ด๋ฌํ UnnecessaryStub ? ์๋ฌ๋ฅผ ๋ง์ฃผ์น๊ฒ ๋์์ต๋๋ค. (๋ถํ์ํ stub ์์ธ)
ํ ์คํธ ์ฝ๋์์ ์ฌ์ฉํ๋ (When, thenReturn, Mock.mockito ๋ฑ)
์๋์ ๊ฐ์ด @MockitoSettings(strictness = Strictness.LENIENT) ์ด๋
ธํ
์ด์
์ ํตํด Mockito์ ์๊ฒฉ์ฑ ์ฆ stub์ ์ค์ฌ์ค ์ ์์ต๋๋ค.
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
class ItemCartServiceImplTest {
}
@ExtendWith(MockitoExtension.class) : JUnit5์์ Mockito๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ์ด๋
ธํ
์ด์
์
๋๋ค.
@MockitoSettings(strictness = ์ต์ )์๋์ ์ฌ์ง์ฒ๋ผ 3๊ฐ์ง์ ์ต์ ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
- LENIENT : LENIENT๋ก ์ค์ ํ๋ฉด Mockito๋ ๋ถํ์ํ ์คํ (stub) ์ค์ ์ ๋ํ ์๋ฌด๋ฐ ๊ฒฝ๊ณ ๋ ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์์ต๋๋ค.
- WARN : ์ด ์ค์ ์ ๋ถํ์ํ ์คํ (stub) ์ค์ ์ด๋ ๋ถํ์ํ ๊ฒ์ฆ์ ๋ํด ๊ฒฝ๊ณ ๋ง์ ๋ฐ์์ํต๋๋ค.
- STRICT_STUBS : ์ด ์ค์ ์ ๋ถํ์ํ ์คํ ์ค์ ์ ๋ํด ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ํค๊ณ , ์คํ ์ด ์ฌ์ฉ๋์ง ์์์ ๋ ์๋ฌ๋ฅผ ๋ฐ์์ํต๋๋ค.
https://widian.github.io/java/2021/08/15/mockito-%EC%82%AC%EC%9A%A9-%EC%A4%91-Unnecessary-Stubbing-Exception-%ED%95%B4%EC%86%8C%ED%95%98%EA%B8%B0.html (์ ์ ๋ฆฌ ํด์ฃผ์ Unless Stub ํด๊ฒฐ ๋ธ๋ก๊ทธ)