본문 바로가기
카테고리 없음

단위 테스트 잘 사용하는 7가지 팁

by 엉덩이가 무거운 개발자 2025. 5. 1.

 

  1. 하나의 논리 단위만 테스트
    •  훅/함수 하나, 컴포넌트 하나.
    •  외부 모듈은 jest.mock 으로 격리.
  2. Arrange-Act-Assert 패턴 고수
    •  Arrange: 테스트 환경·데이터 준비
    •  Act: 동작 수행
    •  Assert: 결과 검증
  3. 무엇을 "검증"하는지 이름에 드러내기
    •  should open modal when … 같이 자연어로.
  4. 불필요한 구현 세부 검사 금지
    •  “setState가 몇 번 호출됐다”보다 "화면에 xxx가 보인다" 혹은 "API가 호출된다" 처럼 행동 위주.
  5. 하나의 테스트엔 하나의 시나리오
    •  여러 시나리오 섞으면 실패 원인 추적이 어렵다.
  6. clearAllMocks / resetModules 로 상태 초기화
    •  테스트끼리 부작용이 없게.
  7. 실패 메시지 가독성 확보
    •  expect(result).toEqual(expected) 보단
       expect(fn).toThrowError(/권한/) 처럼 의미 있는 매처 사용.


테스트  종류 및 특징 

단위 테스트 • 한 함수/훅/컴포넌트 단독
 외부 의존성은 100% 목(mock) / 스텁• DOM 렌더링이 아예 없거나 최소
renderHook() 으로
훅 한 개만 실행 후 내부 로직 검증
통합 테스트 여러 컴포넌트·훅·모듈을 함께 실행• 브라우저 DOM(가상 JS-DOM)
렌더링 있음• 네트워크는 대개 가짜 서버(MSW) 로 스텁
render(<MainLayout/>) → 버튼 클릭 → 모달 뜨는지 확인
E2E(UI) 테스트 • 실제 브라우저 자동화 (Cypress·Playwright)
  네트워크는 실제 서버 or e2e-stub
  라우팅·스토리지·스타일까지 전부 검증
사용자가 로그인 → 로그아웃 → /login 으로 리다이렉트

 

단위는 renderHook(), 통합은 render + user-event 로 “사용자 행동”을 재현.