1. TDD
TDD ์ฃผ์์ฌํญ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ณ TDD๊ฐ ์๋ TDD Cycle์ ๋ฐ๋ผ ํ ์คํธ ์ฝ๋ ์์ฑ, ๋ก์ง ๊ตฌํ, ๋ฆฌํฉํฐ๋ง์ ์ํํ๋ ๊ณผ์ ์ ์๊ฒฉํ๊ฒ ์ง์ผ ๊ฐ๋ฐํด์ผ TDD๋ผ ํ ์ ์๋ค.
Keyword
TDD๋
Jest
Describe - Context - It ํจํด
๋จ์ ํ ์คํธ๋
1. TDD๋?
ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๋ ๋ฐฉ์, ๊ตฌํ๋ณด๋ค ์ธํฐํ์ด์ค์ ์คํ์ ๋จผ์ ์ ์ํ์ฌ ๊ฐ๋ฐ์ ์งํํ๋ ๋ฐฉ์์ด๋ค.
์ธํฐํ์ด์ค
ํ ์คํธํ๋ ค๋ ๋์(๋ชจ๋, ํจ์, ํด๋์ค, ์์คํ ๋ฑ)๊ณผ ์ํธ์์ฉํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๊ณผ ๊ท์น์ ์ ์
์ ๋ ฅ๊ฐ ๋ฐ ์ถ๋ ฅ๊ฐ ์ ์
ํจ์ ํธ์ถ ๋ฐฉ๋ฒ
์์ธ ์ฒ๋ฆฌ ๋ฑ
์คํ
ํ ์คํธ ๋์์ด ์ด๋ป๊ฒ ๋์ํด์ผ ํ๋์ง์ ๋ํ ๊ธฐ๋๋๋ ๋์
TDD Cycle
Red โ ์คํจํ๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑ. ์ธํฐํ์ด์ค์ ์คํ์ ์ง์คํ๋ค.
Green โ ์ฌ๋นจ๋ฆฌ ํ ์คํธ๋ฅผ ํต๊ณผ์ํจ๋ค. ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด ์๋์ด๋ ๊ด์ฐฎ๋ค.
Refactor โ ๋ฆฌํฉํฐ๋ง์ ํตํด ์ฝ๋๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ง๋ ๋ค. TDD์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ด์ง๋ง, ๊ฐ๊ณผ๋ ๋๊ฐ ๋ง๋ค.
Red ๋จ๊ณ
์คํจํ๋ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํ๊ธฐ ์ํด, ์์ ๋จ์, ๋จ๊ณ๋ฅผ ์ฐพ๋๋ค. ์ด ๊ณผ์ ์์ ์๊ฒ๋ ๊ฒ, ๋ฐฐ์ด ๊ฒ์ ๋ํ ํผ๋๋ฐฑ์ ์ป๋ ๊ฒ ์ด๋ ต์ง๋ง ์ค์ํ๋ค. Green๋จ๊ณ์ ํต๊ณผํ๋ ํ ์คํธ ์ฝ๋ ์์ฑ์ด ์ด๋ ต๋ค๋ฉด ์ด ๋จ๊ณ์์ ๋ ์์, ๋ ์ฌ์ด ๋ฌธ์ ๋ฅผ ์ ์ํ๋ค.
Refactor ๋จ๊ณ
์๋๋ฅผ ๋๋ฌ๋ด๊ณ ์ค๋ณต์ ์ฐพ์ ์ ๊ฑฐํ๋ ์ฐ์ต์ ํด์ผํ๋ค. ํ ์คํธ ์ผ์ด์ค ์ ์ ๋ฐฉ๋ฒ
2. Jest
Facebook์์ ๋ง๋ JS, TS ํ ์คํธ ํ๋ ์์ํฌ, React Testing libarary์ ํจ๊ป ํ ์คํธ ๋ฌ๋๋ก์ ์ฌ์ฉํ๋ค.
test ํจ์๋ก ๊ฐ๋ณ ํ ์คํธ๋ฅผ ๋์ด
BDD(ํ์ ์ฃผ๋ ๊ฐ๋ฐ) ์คํ์ผ๋ก ์ฃผ์ฒด(๋์) - ํ์ ์ค์ฌ์ผ๋ก ํ ์คํธ๋ฅผ ์กฐ์ง
๊ฐ๋ณ ํ
์คํธ
BDD ์คํ์ผ
describe - it (์ฃผ์ฒด - ํ์) ์ค์ฌ์ผ๋ก ํ
์คํธ๋ฅผ ์กฐ์งํํ๋ ๋ฐฉ์ ~๋ ~์ด๋ค or ~ํ๋ค.
์ฃผ์โ๏ธ ํ์๋ฅผ ๋ช ์ํ ๋
~๋๋ค
๊ฐ์ ์๋ํ ํํ์ ์ ํฉํ์ง ์๋ค.
3. Describe - Context - It ํจํด
ํ ์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌ์ฑํ๋๋ฐ ๋์์ด ๋๋ ํ ์คํธ ์ฝ๋ ๊ตฌ์ฑ ํจํด
Describe - ์ค๋ช ํ ํ ์คํธ ๋์์ ๋ช ์ํ๋ค.
Context - ํ ์คํธ ๋์์ด ๋์ธ ์ํฉ์ ์ค๋ช ํ๋ค.
It - ํ ์คํธ ๋์์ ํ๋์ ์ค๋ช ํ๋ค.
ํ๊ตญ์ด๋ก ํ
์คํธ ์คํฌ๋ฆฝํธ ๊ตฌ์ฑํ๊ธฐ
Describe - ํ ์คํธ ๋์์ ๋ช ์ฌ๋ก ์์ฑํ๋ค.
~๋, ~(์ด)๊ฐ
Context๋ -
~์ธ ๊ฒฝ์ฐ, ~ํ ๋, ๋ง์ฝ ~ ํ๋ค๋ฉด
๊ณผ ๊ฐ์ด ์ํฉ ๋๋ ์กฐ๊ฑด์ ๊ธฐ์ ํ๋ค.it - ๋ช ์ฌ๋ก ์์ฑํ ํ ์คํธ ๋์์ ํ๋์ ์์ฑํ๋ค.
ํ ์คํธ ๋์์ ํ๋์
~์ด๋ค, ~ํ๋ค, ~๋ฅผ ๊ฐ๋๋ค
๊ฐ ์ ์ ํ๋ค.~๋๋ค
๊ฐ์ ์๋ํ ํํ์ ์ข์ง ์๋ค.
4. ๋จ์ ํ
์คํธ๋?
๋จ์ ํ ์คํธ(Unit Test)๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์์ ํน์ ๋ชจ๋์ด ์๋๋ ๋๋ก ์ ํํ ๋์ํ๋์ง ๊ฒ์ฆํ๋ ์ ์ฐจ๋ค. ์ฆ, ๋ชจ๋ ํจ์์ ๋ฉ์๋์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ ์ ์ฐจ๋ฅผ ๋งํ๋ค.
๋จ์ ํ
์คํธ์ ๋ชฉ์
์ฝ๋๊ฐ ์๋ํ ๋๋ก ๋์ํ๋์ง ๊ฒ์ฆ
๋ฒ๊ทธ๋ฅผ ์กฐ๊ธฐ์ ๊ฐ์งํด ์ ์ํ ๋ฌธ์ ํด๊ฒฐ
์ฝ๋ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ์ฌ์ด๋ ์ดํํธ ์๋ฐฉ
์๊ตฌ์ฌํญ ๋ณ๊ฒฝ, ๋ฆฌํฉํ ๋ง ์ ์ ์ฐํ๊ณ ์์ ์ ์ธ ๋์ ๊ฐ๋ฅ
Last updated