-
Notifications
You must be signed in to change notification settings - Fork 1
๐ [2๋ถ ๋ฆฌ๋ทฐ] TestโDriven Development : By Example
jiwon Han edited this page Apr 30, 2024
·
4 revisions
- xUnit ์ฌ์ฉ๋ฒ์ธ ์ค ์์๋๋ฐ xUnit ๊ฐ๋ฐ์ ํ ์คํธํ๊ธฐ? ์ด๋ฐ ๋๋์ด์ฌ์ ์ข ๋นํฉ์ค๋ฌ์ ๋ค.
- ์๊ฐ๊ฐ ๋งํ๋ ๊ฒ ์ค
๋๋ ์ด๋ค ์ธ์ด๋ฅผ ์๋ก ๊ฐ๋ฐํ ๋ xUnit์ ๊ทธ ์ธ์ด๋ก ํ ์คํธ์ ํจ๊ป ๋ง๋ค์ด ๋ณธ๋ค
๋ ์ถฉ๊ฒฉ์ ์ด์๋ค. - 1๋ถ์ ๋นํด์ 2๋ถ๋ ์ด๋ค ๋ด์ฉ์ ์ค๋ช ํ๊ณ ์ถ์์ง๋ ์๊ฒ ์ง๋ง ์์๊ฐ ์กฐ๊ธ ๊ณผํ ๋๋์ ๋ฐ์๋ค.
- ํ ์คํธ์ ๋ํ ์๊ฒฌ์ด ๋ถ์กฑํด์ ๊ทธ๋ด์ง๋ ๋ชฐ๋ผ๋ ํ ์คํธ ์ ๋ฌธ์ผ๋ก ์ด ์ฑ ์ ์ ํ์ ๋ ์ข ์์ํ ๋๋์ ๋ฐ์ ๊ฒ ๊ฐ๋ค. ์ด๋ ์ ๋ ์๊ธฐ ๋ถ์ผ์์ ํ ์คํธ๋ฅผ ์์ฑํด ๋ณด๊ณ ๋์ ์ฑ ์ ์ ํ๋ค๋ฉด ๊ณต๊ฐํ๋ฉด์ ์ฝ์ ๊ฒ ๊ฐ๋ค.
์ฝ๊ธฐ ์ ์๋ 2๋ถ์ ์ ๋ชฉ์ด "xUnit ์์"๋ผ๊ณ ๋์ด์์ด์, xUnit
์ด๋ผ๋ ํ
์คํ
ํ๋ ์์ํฌ๊ฐ ์๊ณ ๊ทธ ์ฌ์ฉ ์์์ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฐ๋ฐ ์ฝ์ด๋ณด๋ ์ ํ ๊ทธ๋ฐ ๋ด์ฉ์ด ์๋์๋ค.๐ฑ
-
xUnit
์SUnit
(Small talk์ฉ ํ ์คํ ํ๋ ์์ํฌ)์์ ์ฒ์ ์ ์ฉ๋์๊ณ ๋ค์ํ ์ธ์ดx
์ ํฌํ ํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ง ์์ ํ ์คํ ํ๋ ์์ํฌ ๊ฐ๋ ๊ฐ๋ค. - 2๋ถ์ ๋ด์ฉ์ ๊ทธ
xUnit
์ ์ง์ ๋ง๋๋ ๊ณผ์ ์ ๋ด๊ณ ์์ผ๋ฉฐ, ๊ทธ ๊ณผ์ ์์ ์์ฑ์ค์ธxUnit
์ ์๊ธฐ ์ฐธ์กฐ(self-referential)ํ์ฌ ํ ์คํธ ํ๋ฉฐ ๊ฐ๋ฐํ๋ค. - ํ ์คํธ ํด์ ๋ง๋๋ ๊ณผ์ ์์, ๋ง๋ค๊ณ ์๋ ํ ์คํธ ํด๋ก ํ ์คํธ๋ฅผ ํ๋ ๊ฒ์ ๊ฐํ ์ถฉ๊ฒฉ์ ์ด์๋ค.
- 1๋ถ์ ๋ฌ๋ฆฌ 2๋ถ๋ ์ค์ ๋ก ํ ์คํ ํ๋ ์์ํฌ๋ฅผ ๋ง๋ค๊ณ , ๊ทธ๊ฒ์ ๋ง๋๋ ๊ณผ์ ์์ ํ๋ ์์ํฌ๋ฅผ ํ ์คํธ๋ฅผ ํ๋ ๋ด์ฉ์ด ๋ด๊ฒจ์์๊ธฐ ๋๋ฌธ์ ๊ทธ ์ฃผ์ ์ ์์๊ฐ ๋ ๋ด ํฅ๋ฏธ์ ๊ฐ๊น์ ๋ค.
- ๊ทธ๋์์ ์ด๋ฏธ ์ ๋ง๋ค์ด์ง ํ ์คํ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉ๋ง ํด์๋๋ฐ ๊ทธ ํ๋ ์์ํฌ๋ค์ด xUnit๊ณผ ๊ฐ์ ํ ์คํ ๊ณผ์ ์ ๊ฑฐ์ณค์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ์ฌ๋ฏธ์์๋ค. ํ ์คํธ์ฝ๋์ ํ์์ฑ์ด ๋ ๋๋๋ฌ์ง๋ ์ฑํฐ๋ผ๊ณ ๋๊ปด์ก๋ค.
- 1์ฅ์์์ ํ ์คํธ์ฝ๋ ์์๋ฅผ ๋ณด๋ฉด์ ์ข ์ข ํ ์คํธ์ฝ๋๋ฅผ ์ํ ํ ์คํธ(?)๋ผ๋ ๋๋์ ๋ฐ์ ์ ์ด ์๋๋ฐ, ๊ทธ ์ดํ์ 2์ฅ์ ์์๋ฅผ ๋ณด๋ ํ์์๋ ํ ์คํธ์ฝ๋๋ ์์์ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ ๋ค.