์ค๋ ํ ์ผ
โ๏ธ ๋ธ๋ก๊ทธ
โ๏ธ ์ฐํ
์ฝ 2์ฃผ์ฐจ
- ๋ชจ๋ ํ
์คํธ ํต๊ณผ
- App class ๋ถ๋ฆฌ ํด์ BaseBallGame๊ณผ Validaion Class ์์ฑ
- ํ
์คํธ ์ฝ๋ ์์ , ์ถ๊ฐ
- ApplicationTest ์ฝ๋ ์ดํด ์๋ฃ
โ๏ธ ๊ธฐํ
๋๋ ์
Class
์์ static ๋ฉ์๋
์์์ ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ํ๋กํ ํ์
๋ฉ์๋๋ฅผ this๋ก ๊ฐ์ ธ์ค์ง ๋ชปํ๋ค. static๋ฉ์๋ ์์์๋ ๊ฐ์ Class๋ด์ ์ ์๋ static ๋ฉ์๋๋ง ์ฌ์ฉํ ์ ์๋ค. static ๋ฉ์๋๋ this๊ฐ Class ํจ์์ ๋ฐ์ธ๋ฉ ๋๊ณ , ์ผ๋ฐ์ ์ธ ๋ฉ์๋๋ Class๋ฅผ ์์ฑํ ๊ฐ์ฒด์ this๊ฐ ๋ฐ์ธ๋ฉ ๋ผ์ ๋น์ฐํ ๊ฑด๋ฐ ์ฝ๋๋ฅผ ์ฐ๋ค๋ณด๋๊น ํท๊ฐ๋ ธ๋ค.
- Jest ์ตํ๋ณด๋ ค๊ณ ์๋ฃ๋ฅผ ์ฐพ์๋ณด์๋ค. ๊ณต์๋ฌธ์๊ฐ ์์ด๋ก ๋์ด์์ด์ ํ ์จ ํฌ๊ฒ ์ฌ๊ณ , ์ ์ ์ฐจ๋ฆฌ๊ณ ์ฝ๋ค๊ฐ ๋ธ๋ก๊ทธ์ ์์ฑํ ๊ฒ๋ค ๋ณด๋ฉด์ ํ์ํ ๋ถ๋ถ๋ค์ ๋จผ์ ํ์ตํ๋ค. ํ์ง๋ง, ๊ฒฐ๊ตญ ๋๊ณ ๋๋ค๊ฐ ๋ค์ ๊ณต์๋ฌธ์๋ก ์๋ค. ๊ณต์๋ฌธ์๊ฐ ์งฑ์ด๋ค. ์ด๋ ํ ๊ฒ์ ์ฒ์ ํ์ตํ ๋ ๊ฒฐ๊ตญ์๋ ๊ณต์๋ฌธ์๋ก ๋์์ค๋ ๊ฑฐ ๊ฐ๋ค.
- ์ฐํ
์ฝ 2์ฃผ์ฐจ ApplicationTest์ ๋ชจ๋ ์ฝ๋๊ฐ ํต๊ณผ๋๋ค. ํ์ง๋ง, test ์ฝ๋๋ฅผ ์์ ํ ์ดํดํ๊ณ ์์ง ์์ ์ํ์์ ํต๊ณผ๋ผ์ ๊ธฐ์๊ธด ํ์ง๋ง ์ฐ์ฐํจ์ด ๋ง์ด ๋จ์์์๋ค. Jest mock function ๋ถ๋ถ์ ์ด์ฌํ ๊ณต๋ถํ๋ test ์ฝ๋๊ฐ ์ด๋ป๊ฒ ๋์๊ฐ๋์ง ์ดํดํ ์ ์์๋ค. ์๋ก์ด ๊ธฐ์ ์ ํ์ตํด์ ๋งค์ฐ ๊ธฐ์๋ค. Class๋ฅผ ์ฌ์ฉํ๋๋ฐ Class๋ก ์ฝ๋๋ฅผ ์์ฑํด๋ณธ ์ ์ด ๊ฑฐ์ ์์ด์ ์ด์ ๊น์ง App class์ ๋ค ๋๋ ค๋ฐ์๋๋ฐ ์ค๋ ๋ชฉ์ ์ ๋ง๊ฒ Class๋ฅผ ์กฐ๊ธ ๋ถ๋ฆฌํ๋ค. ๋ ๊ณต๋ถํ๊ณ ๋ฆฌํฉํ ๋งํ ๊ฒ์ด๋ค.
- ํ
์คํธ ์ฝ๋์ ์์ฑ์ ์ด์ ์ ๋ชธ์ ๊ฒช์ด๋ณด์๋ค. ๋ฆฌํฉํ ๋งํ๋ฉด์ ์์ํ๋ ๊ฒฐ๊ณผ์ ๋ค๋ฅธ ๊ฒฝ์ฐ, ์๋ฌ ๋ฐ์ ๋ฑ ๋ค์ํ ์ํฉ์ ๋ง์ฃผ์น ์ ์๋ค. ์ด๋ฌํ ์ํฉ์์ ํ
์คํธ ์ฝ๋๋ ์ ๋ง ์ ์ฉํ๋ค. ๋ด ์ฝ๋๋ฅผ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋ฆฌํฉํ ๋งํ ์ ์๊ฒ ๋์์ค๋ค.
- ๋ค์์ฃผ์ ๋ฉด์ ๋๊ฐ๋ฅผ ๋ณธ๋ค. ์ด๋ฒ์ฃผ ์ด๋ฐ์ ๊ณต๋ถ ํ๊ธฐ๋ ์ซ๊ณ ์ง์ณค๋๋ฐ, ๋ฉด์ ๊ธฐํ๊ฐ ์ฃผ์ด์ ธ์ ๋ค์ ์์ง๊ฐ ๋ถํ์ค๋ฅธ๋ค.
์ค๋ ๊ณต๋ถํ๋ฉด์ ๊ฐ์ฅ ์ธ์์ ์ด์๋ ๋ฌธ๊ตฌ.
โํ
์คํธ๋ deterministic ํด์ผํ๋ค. (์ธ์ ์คํ๋๋ ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ผํ๋ค.)โ
์ด ๋ฌธ๊ตฌ๋ฅผ ๋ณด๊ณ Jest์์ mock function์ด ์ ํ์ํ์ง์ ๋ํด์ ์ ์ ์์๋ค.