핵심 요약
펫프렌즈의 DeliveryTimeSchedule 테스트를 중심으로 외부 유틸 의존을 제거하고 Fake Timers로 날짜 의존성을 고정해 테스트의 신뢰성과 유지보수성을 크게 개선했다.
주요 경험
- 공통 부분을 함수로 분리(DRY)하고 describe.each로 시나리오 단위를 관리
- DeliveryTimeSchedule 외의 다른 컴포넌트를 렌더링하지 않고 컴포넌트 단위 테스트에 집중
- useFakeTimers의 setSystemTime 활용으로 “오늘” 기반 라벨 이슈를 안정적으로 재현
- 렌더링 순서 보장을 위해 data-testid를 도입하는 방식으로 신뢰도 상승
얻은 인사이트
- 시간 의존성 관리가 테스트 품질의 핵심이며, 테스트 재현성을 크게 좌우한다
- 테스트 범위를 컴포넌트 단위로 명확히 설정하면 리팩토링의 안전성이 증가한다
- 공통 로직과 케이스를 체계적으로 분리하고 재사용하면 유지보수가 용이해진다


