๐ Unit Test ์ ๋/๋จ์ ํ ์คํธ
๐ซ Unit Test ์ ๋/๋จ์ ํ ์คํธ
(ํน์ ๋จ์์) ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ์ฌ ํ
์คํธํ๋ ์ฝ๋
ํน์ ๋จ์, ์ ๋ : ํจ์, ํด๋์ค, ์ปดํฌ๋ํธ, ํ๋ก๊ทธ๋จ ์ผ๋ถ (!์ ์ฒด ํ๋ก๊ทธ๋จ)
๊ฐ๋จํ ํ
์คํธ๋ฅผ ์ํด์๋, ํ๋ก๊ทธ๋จ ์ ์ฒด๋ฅผ ์คํ์์ผ์ผ ํ๋ ๋ฌธ์ ํด๊ฒฐ
(๋ก์ปฌ ํ๊ฒฝ์์์ ํ๋ก๊ทธ๋จ ์คํ ๋ฆฌ์์ค, ํ์ ๋ฐ์ดํฐ, ์ ์กฐ๊ฑด)
๐ซ TDD?
TDD, Test Driven Development ํ
์คํธ ์ฃผ๋ ๊ฐ๋ฐ
์ฝ๋๋ฅผ ์ค๊ณ ํ ๋, Unit Test๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํ๋
์ด๋ป๊ฒ ๋ณด๋ฉด ์ฒ์๋ถํฐ ์๋ฒฝํ ์ํ๋ฅผ ๊ฐ์ง๋ ค๊ณ ํ๋
Public ํ๊ฑฐ๋, API ์ด๊ฑฐ๋, I/O๊ฐ ๋ถ๋ช
ํ = ๋ณํ์ง ์๋ ๊ฒ๋ค์
๋ฏธ๋ฆฌ Unit Test๋ฅผ ์์ฑํ๋ฉด ์ ์ฉ
ํ์ง๋ง ๊ทธ ์ธ๋,
์ฌ์ฉ์ ํผ๋๋ฐฑ์ด๋, ๋ฏธ์ฒ ๋ฐ๊ฒฌํ์ง ๋ชปํ ๋ฒ๊ทธ๋, ์๋์๋ ๋ค๋ฅธ ๋์ ๋ฑ์ ์ํด
๋ชฉ์ /๊ตฌ์กฐ = ์ฝ๋๊ฐ ๊ฒฐ๊ตญ ๋ฐ๋๊ธฐ ๋ง๋ จ
์ฝ๋๋ฅผ ์์ ํ ๋ ์ด์ฐจํผ ์๋ก์ด Unit Test๋ฅผ ์์ฑํด์ผ ํ๊ณ ,
์์ ๋ ์ฝ๋์ ๋ง์ง ์๋, ๊ธฐ์กด์ ์์ฑํ Unit Test๋ฅผ ๋ณด์ํ๋ ๊ฒ์ ๋ถ๋ช
ํ ์์ฐ์ฑ ์ ํ
ํ
์คํธ๊ฐ ์ฝ๋์ ๋ฐ๋ชฉ์ ์ก๋ ๊ฒฝ์ฐ๋
๋๋ฌธ์,
์ฝ๋๋ฅผ ๊ทธ๋ฅ ์ง๊ณ ,
์ค์ ๋ก ๋ฒ๊ทธ๊ฐ ์ผ์ด๋๊ณ ๊ฐ์ ์ด ํ๋ฆฌ๋ ์์ ์์ ๊ทธ์ ๋ํ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑ
๊ทธ๋ ๊ฒ ์์ฑํ Unit Test ์์ฒด๊ฐ ์ฝ๋์ ๋ช ์ธ๊ฐ ๋๊ธฐ๋ ํจ
+ ์ด์ฐจํผ ์ ๋๋ก ๋ ํ ์คํธ ๊ณ์ํด์ผ ํจ