Jest
ํ์ต ํค์๋
ํ ์คํธ ์ผ์ด์ค ์ ์ ํ๋ ๋ฐฉ๋ฒ
BDD
Jest
์ค์น ๋ฐ ์คํ ๋ฐฉ๋ฒ
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
Describe - Context - It ํจํด
๐ค ํ
์คํธ ์ผ์ด์ค ์ ์ ํ๋ ๋ฐฉ๋ฒ
1. test ํจ์๋ก ๊ฐ๋ณ ํ
์คํธ๋ฅผ ๋์ดํ๋ ๋ฐฉ์
2. BDD ์คํ์ผ๋ก ์ฃผ์ฒด-ํ์ ์ค์ฌ์ผ๋ก ํ
์คํธ๋ฅผ ์กฐ์งํํ๋ ๋ฐฉ์
๐ค BDD ์คํ์ผ์ ๋ญ๊น?
BDD(Behavior-driven development)
์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก
๋น์ฆ๋์ค ์๊ตฌ์ฌํญ์ ์ง์คํ์ฌ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๊ฐ๋ฐํ๋ค๋ ๊ฒ
Facebook์ด ๊ฐ๋ฐํ์ฌ ์คํ ์์ค๋ก ๊ณต๊ฐํ JavaScript ํ ์คํ ํ๋ ์์ํฌ
์ค์ ์ด ๊ฑฐ์ ํ์ ์๋ ํ ์คํธ ํ๋ ์์ํฌ
๐ ๏ธ Jest ์ค์น ๋ฐ ์คํ ๋ฐฉ๋ฒ
1. Jest ์ค์น
2. Jest์์ TypeScript ์ฌ์ฉํ๋๋ก jest.config.js
ํ์ผ ์์ฑ
jest.config.js
ํ์ผ ์์ฑ3. Jest ์คํ
โ๏ธ Jest ๊ธฐ๋ณธ ์ฌ์ฉ ๋ฐฉ๋ฒ
test
ํจ์๋ ์ฒซ๋ฒ์งธ ์ธ์๋ก ์ด ํ ์คํธ๊ฐ ์ด๋ค ๊ฒ์ ์ค๋ช ํ๋์ง ์ ๋ชฉ์ ์ ๋ ฅํ๋ค.๋๋ฒ์งธ ์ธ์๋ก๋ ์ฝ๋ฐฑํจ์๋ฅผ ๊ฐ์ง๋๋ฐ, ์ด ์์์ ํ ์คํธ๋ฅผ ํ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
์ฝ๋ฐฑํจ์ ์์ ์๋
expect
๋ return๊ฐ์ ๊ฐ์ง๋ ์ด๋ค ํจ์๋ฅผ ์คํํ๋ค.expect๋ ๊ฐ์ฒด๋ฅผ
toBe
๋ฅผ ์ฌ์ฉํด์ ์ด๋ค ๊ฐ์ด ๋์ฌ์ง ์ธ์๋ก ๋ด๋๋ค.
๐ฏ Matchers๋ก ๋ค์ํ ๊ฒฐ๊ณผ ์์ธกํ๊ธฐ
.toBe
.toBe
toBe
์ ๊ฒฝ์ฐ Object.is๋ฅผ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํด์ ๋น๊ตํ๋ ๋ ๊ฐ์ฒด๋ฅผ ๋น๊ตํ์ ๋ ===์ด ์ฑ๋ฆฝํ๋์ง๋ก ์ดํดํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
.toEqual
.toEqual
toEqual
์ ๋ฐฐ์ด ๋๋ ๊ฐ์ฒด์ ๊ฐ(์ฃผ์ ๋ง๊ณ !)์ด ๊ฐ์์ง ํ์ธํ๋ค.
์ด์ธ์๋ ๋ค์ํ Matchers๋ค์ด ์กด์ฌํ๋ค.
๐งฉ Describe-Context-It (Describe-It) ํจํด
describe
ํค์๋๋ฅผ ์ฌ์ฉํด์ ์์ ๋จ์์ ํ
์คํธ ์ฝ๋๋ฅผ ๊ทธ๋ฃนํํ ์ ์๋ค.
๐ค ๊ทธ๋ฃนํ ํ๋ค๋๊ฒ ๋ฌด์จ ์๋ฏธ ์ผ๊น?
ํน์ component์ ์ํ๋ ํ
์คํธ ์ฝ๋๋ผ๋ฉด describe
ํค์๋๋ฅผ ์ฌ์ฉํด์ ํด๋น ํ
์คํธ ์ฝ๋๋ค์ ๊ทธ๋ฃนํํ๋ ๊ฒ์ด ์ข๋ค. ์ด๋ ๊ฒ ๊ทธ๋ฃนํ๋ฅผ ํด์ฃผ๊ฒ ๋๋ฉด ๋์ค์ ํ
์คํธ ๊ฒฐ๊ณผ๋ฅผ ํ์ธ์ ๋ ๊ฐ์์ ์ผ๋ก ๋ณด๊ธฐ ํธํ๊ฒ ํ
์คํธ ์ผ์ด์ค๋ค์ ํ์ธ ํ ์ ์๋ค.
Jest๋ฅผ ์ด์ฉํ ๊ฐ๋จํ TDD ์์
๐ ํ์ผ๋ช
: ํ์ผ์ด๋ฆ.test.ํ์ฅ์
ํ์ผ์ด๋ฆ.test.ํ์ฅ์
sample.test.ts
sample.spec.ts (์ฃผ๋ก BDD ์คํ์ผ๋ก ์ฌ์ฉ ์)
๐ค test ํจ์๋ก ๊ฐ๋ณ ํ
์คํธ๋ฅผ ๋์ดํ๋ ๋ฐฉ์
์คํจ ์ผ์ด์ค๋ก ์ฐ์ add ํจ์ ์์ฑ
ํ ์คํธ๊ฐ ํต๊ณผ ๋ ์ ์๋๋ก add ํจ์ ์์
๋ฐ๋ณต์ ์ผ๋ก ์ฝ๋๋ฅผ ํ ์คํธ ํ๋ฉด์ ์ค๋ณต์ ๊ฑฐ
๐ค BDD ์คํ์ผ๋ก ์ฃผ์ฒด-ํ์ ์ค์ฌ์ผ๋ก ํ
์คํธ๋ฅผ ์กฐ์งํํ๋ ๋ฐฉ์
BDD ์คํ์ผ๋ก ํ ์คํธ ๋์๊ณผ ํ์๋ฅผ ๋ช ํํ ๋๋ฌ๋ด์.
๐ค ๋ค์ํ ๊ฒฝ์ฐ๊ฐ ๊ณ ๋ ค ๋์ด์ผ ํ๋ค๋ฉด? โ Describe-Context-It ํจํด
๐ ์ฐธ๊ณ
Last updated