통합 테스트 픽스처를 작게 유지하는 방법
테스트 데이터가 커지면서 읽기 어려워진 문제를 정리했습니다.
통합 테스트가 늘어나면서 공통 픽스처가 모든 필드를 채우기 시작했습니다. 테스트에 필요하지 않은 값까지 등장하니 무엇이 중요한 조건인지 파악하기 어려웠습니다.
기본값은 생성 함수 안으로
private Member createMember(String email) {
return memberRepository.save(
Member.create(email, "테스트 사용자")
);
}
테스트 본문에서는 시나리오에 영향을 주는 값만 직접 표현했습니다. 특별한 상태가 필요할 때는 별도 생성 함수를 두었습니다.
- 정상 회원 생성
- 탈퇴 회원 생성
- 주문 이력이 있는 회원 생성
픽스처를 무조건 재사용하는 것보다 테스트의 의도를 한눈에 읽을 수 있는지가 더 중요했습니다. 중복이 조금 생기더라도 서로 다른 시나리오라면 명시적으로 분리하는 편이 변경에 안전했습니다.
