ํ ์คํธ ๊ธฐ๋ณธ
Sonamu๋ ์ด๋ค ํ
์คํธ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋์?
Sonamu๋ ์ด๋ค ํ ์คํธ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋์?
Sonamu๋ Vitest๋ฅผ ์ฌ์ฉํฉ๋๋ค.ํน์ง:
- Vite ๊ธฐ๋ฐ์ผ๋ก ๋งค์ฐ ๋น ๋ฅธ ์คํ ์๋
- Jest ํธํ API
- TypeScript ๋ค์ดํฐ๋ธ ์ง์
- HMR ์ง์
ํ
์คํธ๋ฅผ ์คํํ๋ ค๋ฉด?
ํ ์คํธ๋ฅผ ์คํํ๋ ค๋ฉด?
ํ
์คํธ ํ์ผ์ ์์ฑํ๋ ค๋ฉด?
ํ ์คํธ ํ์ผ์ ์์ฑํ๋ ค๋ฉด?
Scaffolding์ผ๋ก ์์ฑ:
- Sonamu UI ์ ์
- Scaffolding ํญ
- Entity ์ ํ
- Template:
model_test์ ํ - Generate ํด๋ฆญ
ํ ์คํธ ๋ฐ์ดํฐ
ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํ๋ ค๋ฉด?
ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํ๋ ค๋ฉด?
setTestData() ๋ฉ์๋:ํ
์คํธ์์ ์ฌ์ฉ:
ํ
์คํธ๋ง๋ค DB๋ฅผ ์ด๊ธฐํํ๋ ค๋ฉด?
ํ ์คํธ๋ง๋ค DB๋ฅผ ์ด๊ธฐํํ๋ ค๋ฉด?
beforeEach ์ฌ์ฉ:
๋ชจ๋ธ ํ ์คํธ
CRUD ๋ฉ์๋๋ฅผ ํ
์คํธํ๋ ค๋ฉด?
CRUD ๋ฉ์๋๋ฅผ ํ ์คํธํ๋ ค๋ฉด?
Subset์ ํ
์คํธํ๋ ค๋ฉด?
Subset์ ํ ์คํธํ๋ ค๋ฉด?
๊ด๊ณ(Relation)๋ฅผ ํ
์คํธํ๋ ค๋ฉด?
๊ด๊ณ(Relation)๋ฅผ ํ ์คํธํ๋ ค๋ฉด?
API ํ ์คํธ
API ๋ฉ์๋๋ฅผ ํ
์คํธํ๋ ค๋ฉด?
API ๋ฉ์๋๋ฅผ ํ ์คํธํ๋ ค๋ฉด?
์๋ฌ๋ฅผ ํ
์คํธํ๋ ค๋ฉด?
์๋ฌ๋ฅผ ํ ์คํธํ๋ ค๋ฉด?
๊ณ ๊ธ ํ ์คํธ
ํธ๋์ญ์
์ ํ
์คํธํ๋ ค๋ฉด?
ํธ๋์ญ์ ์ ํ ์คํธํ๋ ค๋ฉด?
๋น๋๊ธฐ ์์
์ ํ
์คํธํ๋ ค๋ฉด?
๋น๋๊ธฐ ์์ ์ ํ ์คํธํ๋ ค๋ฉด?
Mock์ ์ฌ์ฉํ๋ ค๋ฉด?
Mock์ ์ฌ์ฉํ๋ ค๋ฉด?
ํ ์คํธ ํจํด
test.each๋ก ๋ฐ๋ณต ํ
์คํธํ๋ ค๋ฉด?
test.each๋ก ๋ฐ๋ณต ํ ์คํธํ๋ ค๋ฉด?
ํ
์คํธ๋ฅผ ๊ทธ๋ฃนํํ๋ ค๋ฉด?
ํ ์คํธ๋ฅผ ๊ทธ๋ฃนํํ๋ ค๋ฉด?
Best Practices
ํ
์คํธ ์์ฑ ์ ์ฃผ์์ฌํญ
ํ ์คํธ ์์ฑ ์ ์ฃผ์์ฌํญ
DO:
- โ ๊ฐ ํ ์คํธ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ ๊ฐ๋ฅํด์ผ ํจ
- โ
beforeAll์ด๋beforeEach๋ก ํ ์คํธ ๋ฐ์ดํฐ ์ด๊ธฐํ - โ ์๋ฏธ ์๋ ํ ์คํธ ์ด๋ฆ ์ฌ์ฉ
- โ ํ๋์ ํ ์คํธ์์ ํ๋์ ๊ธฐ๋ฅ๋ง ํ ์คํธ
- โ ์๋ฌ ์ผ์ด์ค๋ ๋ฐ๋์ ํ ์คํธ
- โ ํ ์คํธ ๊ฐ ์์กด์ฑ ๋ง๋ค์ง ์๊ธฐ
- โ ์ค์ ์ธ๋ถ ์๋น์ค ํธ์ถํ์ง ์๊ธฐ (Mock ์ฌ์ฉ)
- โ ํ๋ก๋์ DB ์ฌ์ฉํ์ง ์๊ธฐ
- โ ํ๋์ฝ๋ฉ๋ ID๋ ๋ ์ง ์ฌ์ฉ ์ง์
- โ ํ ์คํธ ์คํจ๋ฅผ ๋ฌด์ํ์ง ์๊ธฐ