TTD - Jest

μ „λ³‘κ·œΒ·2024λ…„ 3μ›” 24일
0

λ‹¨μœ„ν…ŒμŠ€νŠΈ(unit test)

πŸ’‘ ν•˜λ‚˜μ˜ λͺ¨λ“ˆ ( μ»΄ν¬λ„ŒνŠΈ λ˜λŠ” νŽ˜μ΄μ§€)을 κ°€μ€€μœΌλ‘œ λ…λ¦½μ μœΌλ‘œ μ§„ν–‰λ˜λŠ” κ°€μž₯ μž‘μ€ λ‹¨μœ„μ˜ ν…ŒμŠ€νŠΈμ΄λ‹€.
λ‹¨μœ„ ν…ŒμŠ€νŠΈλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” ν•˜λ‚˜μ˜ κΈ°λŠ₯이 μ˜¬λ°”λ₯΄κ²Œ λ™μž‘ν•˜λŠ”μ§€λ₯Ό ν…ŒμŠ€νŠΈν•œλ‹€.
즉 β€œμ–΄λ–€ κΈ°λŠ₯이 μ‹€ν–‰λ˜λ©΄ μ–΄λ–€ κ²°κ³Όκ°€ λ‚˜μ˜¨λ‹€β€ μ •λ„λ‘œ ν…ŒμŠ€νŠΈλ₯Ό μ§„ν–‰ν•œλ‹€.

Jest 문법

  • it
    • 영문으둜 μž‘μ—…ν• λ•Œ
  • test
    • ν•œκ΅­λ§λ‘œ μž‘μ—…ν• λ•Œ μ‚¬μš©
  • describe
    • ν…ŒμŠ€νŠΈν•˜κ³ μž ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ λ˜λŠ” νŽ˜μ΄μ§€ 포함
    • it κ³Ό test λ₯Ό ν†΅ν•΄μ„œ μ„ΈλΆ€ ν…ŒμŠ€νŠΈλ₯Ό ν•œλ‹€.
  • beforEach
    • it κ³Ό test 전에 각각 ν•œλ²ˆμ”© μ‹€ν–‰λœλ‹€.

describe("ν…ŒμŠ€νŠΈν•˜κ³ μž ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ", () => {
	beforeEach(()=>{
		console.log("beforeEach");
	})
	it("should test component A", ()=>{
		console.log("it");
	});
	test("ν…ŒμŠ€νŠΈμΌ€μ΄μŠ€ 1번, 00을 ν…ŒμŠ€νŠΈν•œλ‹€.",()=>{
		console.log("test");
		});
})

μ‹€ν–‰μˆœμ„œ

beforeEach > it > beforeEach > test

  • beforeAll()
    • beforeAll 전체적 ν…ŒμŠ€νŠΈ 전에 싀행됨
  • afterAll
    • beforeAll κ³Ό λ‹€λ₯΄κ²Œ 전체적 ν…ŒμŠ€νŠΈ 후에 μ‹€ν–‰λ˜λŠ” μ½”λ“œμ΄λ‹€

ν™˜κ²½μ„€μ •

jest 와 κ΄€λ ¨λœ 라이브러리 μ„€μΉ˜

npm i --save-dev jest @types/jest ts-jest jest-environment-jsdom @testing-library/react @testing-library/dom @testing-library/jest-dom

μ΅œμƒμœ„ 폴더 jest.config.cjs νŒŒμΌμ„ ν•˜λ‚˜ λ§Œλ“€μ–΄ μ€€λ‹€.

그리고 μ•„λž˜μ™€ 같이 μž‘μ„±ν•œλ‹€.

λ˜λŠ” νŒŒμΌμ„ μž‘μ„±μ„ μ›ν•˜μ§€ μ•ŠλŠ” κ²½μš°μ—λŠ” package.json 에 μž‘μ„±μ„ 해도 λœλ‹€.

package.json 에 ν…ŒμŠ€νŠΈ ν•  λͺ…λ Ήμ–΄λ₯Ό λ„£μ–΄μ€€λ‹€.


μœ λ‹›ν…ŒμŠ€νŠΈ μ‹€ν–‰

ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜κ³ μžν•˜λŠ” νŽ˜μ΄μ§€ λ˜λŠ” μ»΄ν¬λ„ŒνŠΈμ™€ 동일 ν•˜κ²Œ νŒŒμΌμ„ μž‘μ„±ν•΄μ€€λ‹€.

κ·Έ λ°μ΄ν„°μ•ˆμ— ν…ŒμŠ€νŠΈν•˜κ³  ν•˜λŠ” λͺ…λ Ήμ–΄ 적어쀀닀.

κ·Έ 이후 λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν‚€κΈ° μœ„ν•΄ λͺ…λ Ήμ–΄ μ‹€ν–‰ν•΄λ³Έλ‹€.

그럼 μ•„λž˜μ™€ 같이 ν…ŒμŠ€νŠΈ ν•˜κ³ μžν•˜λŠ” λ‚΄μš©λ“€μ΄ λ‚˜μ˜¨λ‹€.

profile
μ΄μƒν•œ 개발자

0개의 λŒ“κΈ€