1. TDD
TDD ์ ๋ํด์ ์ฃผ์ํ ์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ณ ํด์ TDD ๊ฐ ์๋๋๋ค. TDD Cycle ์ ๋ฐ๋ผ ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๊ณ , ๊ตฌํํ๊ณ , ๋ฆฌํฉํฐ๋ง ํ๋ ๊ณผ์ ์ ์๊ฒฉํ๊ฒ ์ง์ผ์ ๊ฐ๋ฐ์ ์งํํด์ผ TDD ๋ผ๊ณ ํ ์ ์์ต๋๋ค. TDD ๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ๋ณ๊ฐ๋ก ๋ฐ๋ก ์ฐ์ต์ด ํ์ํ๊ณ ์ต๊ด์ ๋ค์ฌ์ผํ๋ ๋ถ์ผ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ TDD ๋ฅผ ์ ํ๊ธฐ ์ํด์๋ ํ ์คํธ ์ฝ๋ ์์ฑ๋ฒ ์์ฒด๋ถํฐ ๊ณต๋ถ๋ฅผ ํ์ ์ผ ํฉ๋๋ค. ๋น์ฅ์ TDD ๋ณด๋ค ํ ์คํธ ์ฝ๋ ์์ฑ์ ์ต์ํด์ง๊ณ ์ด๋ป๊ฒ ํ๋ฉด ํ ์คํธ ์ฝ๋๋ฅผ ์ ์์ฑํ ์ ์์๊น์ ์ด์ ์ ๋ง์ถฐ ๊ณต๋ถํ์๋ฉด ์ข์ต๋๋ค.
TDD
ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๋, ์ฆ ๊ตฌํ๋ณด๋ค ์ธํฐํ์ด์ค์ ์คํ์ ๋จผ์ ์ ์ํจ์ผ๋ก์จ ๊ฐ๋ฐ์ ์งํํ๋ ๋ฐฉ์
์งง์ ๋จ์์ TDD Cycle์ ๋ฐ๋ณตํ๋ฉด์ ๊ฐ๋ฐ์ ์งํ
TDD Cycle
Red : ์คํจํ๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑ
Green : ์ฌ๋นจ๋ฆฌ ํ ์คํธ๋ฅผ ํต๊ณผ์ํด
Refactor : ๋ฆฌํฉํ ๋ง์ ํตํด์ ์ฝ๋๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ง๋ฆ
Jest
Test Matcher : toBe()
์ ๊ฐ์ด ๊ธฐ๋๊ฐ์ ๋น๊ตํ ๋ ์ฌ์ฉํ๋ ํจ์. toBe()
๋ ์ซ์๋ ๋ฌธ์์ ๊ฐ์ ๊ฐ์ฒด๊ฐ ์๋ ๊ธฐ๋ณธํ(primitive) ๊ฐ์ ๋น๊ตํ ๋ ์ฌ์ฉ๋จ
toEqual()
๊ฐ์ฒด๋ฅผ ๊ฒ์ฆํ ๋๋ toBe()
๋์ toEqual()
์ฌ์ฉ
toBeTruthy(), toBeFalsy()
toBeTruthy()
๋ boolean ํ์
์ด ์๋์ด๋ true๋ก ๊ฐ์ฃผ๋๋ฉด ํต๊ณผ๋๊ณ , toBeFalsy()
๋ false๋ก ๊ฐ์ฃผ๋๋ฉด ํต๊ณผ
toHaveLength(), toContain()
toHaveLength()
: ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์ฒดํฌ
toContain()
: ํน์ ์์๊ฐ ๋ฐฐ์ด์ ๋ค์ด์๋์ง๋ฅผ ํ
์คํธ
Matcher ์์ not
Matcher๋ฅผ ์ฌ์ฉํ๋ฉด ๋ถ๋ง์กฑํ๋ ๊ฒฝ์ฐ๋ฅผ ํ
์คํธํ ์ ์์
toMatch()
์ ๊ท์ ๊ธฐ๋ฐ์ ๋ฌธ์์ด ํ ์คํธ
toThrow()
์์ธ๋ฐ์ ์ฌ๋ถ๋ฅผ ํ ์คํธ
์ธ์๋ก ๋ฌธ์์ด์ ๋๊ธฐ๋ฉด ์์ธ ๋ฉ์์ง๋ฅผ ๋น๊ตํ๊ณ ์ ๊ท์์ ๋๊ธฐ๋ฉด ์ ๊ท์ ์ฒดํฌ๋ฅผ ํด์ค
expect()
ํจ์์ ๋๊ธฐ๋ ๊ฒ์ฆ ๋์์ ํจ์๋ก ํ ๋ฒ ๊ฐ์ธ์ค์ผ ํ
์คํธ ์ค์ ์์ธ๊ฐ ๋ฐ์ํด ์คํจํ๋ ๊ฒ์ ๋ง์ ์ ์์
Describe - Context - it
Jest์ describe(), it()
describe()
ํจ์๋ฅผ ํตํด ์ฌ๋ฌ ๊ฐ์ ์ฐ๊ด๋ ํ
์คํธ๋ฅผ ๊ทธ๋ฃนํํ ์ ์์
it()
ํจ์๋ test()
ํจ์์ ์์ ํ ๋์ผ
Describe - Context - It ํจํด
Describe : Sum ํจ์๋
Context : ์ ๋ ฅ์ผ๋ก 300๊ณผ 200์ด ์ฃผ์ด์ง๋ฉด
It : 500์ ๋ฆฌํดํ๋ค
๋จ์ํ
์คํธ
์์ฉํ๋ก๊ทธ๋จ์์ ํ ์คํธ ๊ฐ๋ฅํ ๊ฐ์ฅ ์์ ์ํํธ์จ์ด๋ฅผ ์คํํ์ฌ ์์๋๋ก ๋์ํ๋์ง ํ์ธํ๋ ํ ์คํธ
Stub
์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ํ๋์ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ๊ณผ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผํจ
๋จ์ํ ์คํธ์์๋ ๋ค๋ฅธ ๊ฐ์ฒด์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๊ฐ์ฒด ๋์ ์ ๊ฐ์ง ๊ฐ์ฒด(Mock Object)๋ฅผ ์ฃผ์ ํ์ฌ ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ผ๊ณ ์ ํด์ง ๋ต๋ณ์ ์ค๋น์์ผ์ผ ํ๋๋ฐ ์ด๋ฅผ stub์ด๋ผ๊ณ ํจ
Last updated