Jest vs Vitest
서로 기본적인 사용법은 거의 흡사함. (고급 테스팅 문법을 제외하면 사용되는 문법이 같음)
-
Jest
- 가장 많이 쓰는 JS/TS 테스팅 도구.
- 생태계가 풍부하고
Create React App같은 템플릿에서 기본 탑재. - 장점: 안정적, Mock 기능 강력.
- 단점: Vite 기반 프로젝트에선 설정이 약간 무겁거나 느릴 수 있음.
-
Vitest
- Vite 프로젝트라면 추천.
- Vite의 빠른 HMR과 빌드 파이프라인을 그대로 사용해서 빠름.
- Jest API와 호환성이 높아 마이그레이션 쉬움.
- 단점: 매우 복잡한 mocking에서는 Jest보다 불편할 수 있음.
👉 Vite 기반이면 Vitest
👉 CRA/Next.js 등 전통적인 환경이면 Jest
assertion & 도우미 라이브러리
@testing-library/react→ 컴포넌트 테스트 표준.@testing-library/user-event→ 사용자가 실제로 클릭/타이핑하는 흐름 시뮬레이션.msw(Mock Service Worker) → API 통신 Mock.Cypress→ 통합 테스트(E2E)까지 고려한다면.
TDD flow
‘실패하는 테스트 코드 작성 → 테스트를 통과하는 동작 코드 작성 → 피드백 → 코드 개선’
- 유닛 테스트: 함수/컴포넌트 단위.
- 통합 테스트: 여러 컴포넌트/함수가 함께 작동하는지.
- E2E 테스트(Cypress): 실제 사용 흐름 전체.
AAA 구조
기본 구조는 AAA 패턴 — Arrange → Act → Assert
- Arrange: 필요한 props/mock/state 준비
- Act: 사용자 동작 시뮬레이션 (예: 버튼 클릭)
- Assert: 결과를 기대값과 비교
강의 및 참고 문서
강의
참고 문서