์ด ์ ์ฅ์๋ 'ํ๋ฐํธ์๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ํ ์คํธ ์ ๋ฌธ'์ 3์ฅ๋ถํฐ 6์ฅ๊น์ง์ ๋ด์ฉ์ด ๋ด๊ธด ์ ์ฅ์์ ๋๋ค. ์ด ์ ์ฅ์๋ ์ฒ์์ผ๋ก ํ๋ฐํธ์๋ ํ๊ฒฝ์์ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๋ถ๋ค์ ๋์์ผ๋ก ๋ง๋ค์์ต๋๋ค. ๋ฐ๋ผ์ Jest์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ๋ถ๋ถ์ด ๋ง์ต๋๋ค.
- ๏ผ์ฅ ์ฒ์ ์์ํ๋ ๋จ์ ํ ์คํธ
- ๏ผ์ฅ ๋ชฉ ๊ฐ์ฒด
- ๏ผ์ฅ UI ์ปดํฌ๋ํธ ํ ์คํธ
- ๏ผ์ฅ ์ปค๋ฒ๋ฆฌ์ง ๋ฆฌํฌํธ ์ฝ๊ธฐ
Jest๋ฅผ ์ฌ์ฉํด์ ์์ฑํ ํ ์คํธ ์ฝ๋๋ฅผ ์ค๋ช ํฉ๋๋ค. ์ฒ์์ผ๋ก ํ ์คํธ๋ฅผ ์์ฑํด๋ณด๋ ๋ถ๋ค์๊ฒ ์ ํฉํ ๋ด์ฉ์ ๋๋ค.
ใ์์ ์ฝ๋ใsrc/03/**/*.test.ts
$ npm test
ํ ์คํธ์ ํ์์ ์ธ '๋ชฉ ๊ฐ์ฒด'์ ์ฌ์ฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. Jest๋ ๊ณต์์ ์ผ๋ก ๋ชฉ ๊ฐ์ฒด๋ฅผ ์ง์ํ๊ณ ์์ต๋๋ค.
ใ์์ ์ฝ๋ใsrc/04/**/*.test.ts
$ npm test
Node.js์๋ DOM API๊ฐ ์์ต๋๋ค. ํ์ง๋ง jsdom์ด๋ผ๋ DOM API๋ฅผ ๊ฐ์ํํ ํ๊ฒฝ์ ์ฌ์ฉํ๋ฉด ์ค์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ ๊ฒ๊ณผ ์ ์ฌํ ํ ์คํธ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. Testing Library๋ UI ์ปดํฌ๋ํธ๋ฅผ ํ ์คํธํ ์ ์๋๋ก ์ง์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
ใ์์ ์ฝ๋ใsrc/05/**/*.test.tsx
$ npm test
๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ์ ๋ฅ์ํด์ก๋ค๋ฉด ์ปค๋ฒ๋ฆฌ์ง ๋ฆฌํฌํธ๋ฅผ ํ์ธํ์ฌ ํ ์คํธ๊ฐ ๋ถ์กฑํ ๋ถ๋ถ์ ์ฐพ์๋ด ์๋ค. ์ปค๋ฒ๋ฆฌ์ง ๋ฆฌํฌํธ๋ฅผ ์ฝ์ผ๋ฉด ํ ์คํธ ์ฝ๋ ์์ฑ ํฌ์ธํธ๊ฐ ๋ช ํํด์ง๋๋ค.
ใ์์ ์ฝ๋ใsrc/06/**/*.test.{ts,tsx}
$ npm test