ํ ์คํธ ์ฝ๋๋ ์์ฑ๋ง ํ๋ฉด ๊ด์ฐฎ์ ๊ฒ์ด ์๋๋ค. ํ ์คํธ ์ฝ๋๋ฅผ ์ผ๋ฐ ๋น์ฆ๋์ค ๋ก์ง์ ์์ฑํ๋ ๊ฒ์ฒ๋ผ ํด๋ฆฐํ๊ฒ ์์ฑํ ์ ์๋๋ก ๋ ธ๋ ฅ ํด์ผ ํ๋ค. ์๊ฐ์ด ์ง๋ ์๊ตฌ์ฌํญ์ด ๋ณ๊ฒฝ๋๋ฉด ํ ์คํธ ์ฝ๋ ๋ํ ์ ์ง๋ณด์๊ฐ ๋ค์ด๊ฐ๋ค. ์ด๋ ๋ง๊ตฌ์ก์ด๋ก ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํด ๋์๋ค๋ฉด ๋์ค์ ์ ์ง๋ณด์ํ๊ธฐ ๋ฌด์ฒ ํ๋ค์ด์ง ์ ์๊ณ ์์นซ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๋ ๊ฒ ๋ง ๋ชปํ ์ ์๋ค.
์ฝ๋์ ์ ์ฐ์ฑ, ์ ์ง๋ณด์์ฑ, ์ฌ์ฌ์ฉ์ฑ์ ์ ๊ณตํ๋ ๋ฒํ๋ชฉ์ด ๋ฐ๋ก ๋จ์ ํ ์คํธ๋ค. ์ํคํ ์ฒ๊ฐ ๋ถ์คํ ์ฝ๋๋ ์ค๊ณ๊ฐ ๋ชจํธํ๊ณ ์๋ง์ธ ์ฝ๋๋ผ๋ ๋ณ๋ค๋ฅธ ์ฐ๋ ค ์์ด ๋ณ๊ฒฝํ ์ ์๋ค. ๋ฐ๋ผ์ ํ ์คํธ ์ฝ๋๊ฐ ์ง์ ๋ถํ๋ฉด ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฅ๋ ฅ์ด ๋จ์ด์ง๋ฉฐ ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๋ ๋ฅ๋ ฅ๋ ๋จ์ด์ง๋ค.
ํ ์คํธ ์ฝ๋๋ ๊ฐ๋ ์ฑ์ด ์ค์ํ๋ค. ํ ์คํธ ์ฝ๋๋ ์ต์์ ํํ์ผ๋ก ๋ง์ ๊ฒ์ ๋ํ๋ด์ผ ํ๋ค.
BUILD-OPERATE-CHECK ํจํด ์ฒซ ๋ถ๋ถ์ ํ ์คํธ ์๋ฃ๋ฅผ ๋ง๋ ๋ค. ๋ ๋ฒ์งธ ๋ถ๋ถ์ ํ ์คํธ ์๋ฃ๋ฅผ ์กฐ์ํ๋ฉฐ, ์ธ ๋ฒ์งธ ๋ถ๋ถ์ ์กฐ์ํ ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ๋ค. ์์ ๊ฐ์ ํจํด์ ์ก๋คํ ์ฝ๋๋ฅผ ์์ ๊ณ ํ ์คํธ ์ฝ๋๋ ๋ณธ๋ก ์ ๋์ ํด ์ง์ง ํ์ํ ์๋ฃ ์ ํ๊ณผ ํจ์๋ง ์ฌ์ฉํ๋ค.
ํ ์คํธ API ์ฝ๋์ ์ ์ฉํ๋ ํ์ค์ ์ค์ ์ฝ๋์ ์ ์ฉํ๋ ํ์ค๊ณผ ํ์คํ ๋ค๋ฅด๋ค. ๋จ์ํ๊ณ , ๊ฐ๊ฒฐํ๊ณ , ํํ๋ ฅ์ด ํ๋ถํด์ผ ํ์ง๋ง, ์ค์ ์ฝ๋๋งํผ ํจ์จ์ ์ผ ํ์๋ ์๋ค. ๋จ์ํ๊ณ , ๊ฐ๊ฒฐํ๊ณ , ํํ๋ ฅ์ด ํ๋ถํด์ผ ํ์ง๋ง, ์ค์ ์ฝ๋๋งํผ ํจ์จ์ ์ผ ํ์๋ ์๋ค. ์ค์ ํ๊ฒฝ์ด ์๋๋ผ ํ ์คํธ ํ๊ฒฝ์์ ๋์๊ฐ๋ ์ฝ๋์ด๊ธฐ ๋๋ฌธ์ด๋ค.
assert ๋ฌธ์ด ๋จ ํ๋์ธ ํจ์๋ ๊ฒฐ๋ก ์ด ํ๋๋ผ์ ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ฝ๊ณ ๋น ๋ฅด๋ค. ํ์ง๋ง assert ๋ฌธ์ ํ๋๋ง ์ฌ์ฉํ๋ ค ํ ๊ฒฝ์ฐ ์ค๋ณต๋๋ ์ฝ๋๊ฐ ๋ง์์ง ์ ์๊ณ ์๊ฐ์ด ๋ง์ด ๋ค ์ ์๋ค. ์ค๋ณต๋๋ ์ฝ๋๊ฐ ๋ง์์ง ๊ฒฝ์ฐ TEMPALTE METHOD ํจํด์ ์ฌ์ฉํ๋ฉด ์ค๋ณต์ ์ ๊ฑฐํ ์ ์๋ค. assert ๋ฌธ ๊ฐ์๋ ๋ฐ๋์ ํ๋์ผ ํ์๋ ์์ง๋ง ์ต๋ํ ๊ฐ์๋ฅผ ์ค์ฌ์ผ ํ๋ค.
ํ ํ ์คํธ ๋ฉ์๋์ ๊ฐ๋ ์ด ์ฌ๋ฌ๊ฐ์ผ ๊ฒฝ์ฐ ์ฅํฉํ ํ ์คํธ ์ฝ๋ ์์์ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ํ ์คํธ ์ฝ๋๋ฅผ ์ดํดํ๋๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ๋ฐ๋ผ์ ํ ์คํธ๋น ๊ฐ๋ ์ ํ๋๋ก ํ๋ค.
๋น ๋ฅด๊ฒ: ํ ์คํธ ์ฝ๋๋ ์ด๋ฐ์๋ ๋น ๋ฅด๊ฒ ์์ฃผ ๋๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์ ๋นจ๋ผ์ผํ๋ค.
๋ ๋ฆฝ์ ์ผ๋ก: ๊ฐ ํ ์คํธ๋ ์๋ก ์์กดํ๋ฉด ์๋๋ค. ๊ฐ ํ ์คํธ๋ ์ด๋ค ์์์ฌ๋ ์คํ๋์ด์ผ ํ๋ค.
๋ฐ๋ณต๊ฐ๋ฅํ๊ฒ: ํ ์คํธ๋ ์ด๋ค ํ๊ฒฝ์์๋ ๋ฐ๋ณต ๊ฐ๋ฅํด์ผ ํ๋ค.
์๊ฐ๊ฒ์ฆํ๋: ํ ์คํธ๋ ๋ถ์ธ(bool) ๊ฐ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ด์ผํ๋ค.
์ ์์: ๋จ์ ํ ์คํธ๋ ํ ์คํธํ๋ ค๋ ์ค์ ์ฝ๋๋ฅผ ๊ตฌํํ๊ธฐ ์ง์ ์ ๊ตฌํํ๋ค. ์ค์ ์ฝ๋๋ฅผ ๊ตฌํํ ๋ค์์ ํ ์คํธ ์ฝ๋๋ฅผ ๋ง๋ค๋ฉด ์ค์ ์ฝ๋๊ฐ ํ ์คํธํ๊ธฐ ์ด๋ ต๋ค๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ ์ง ๋ชจ๋ฅธ๋ค.