Code/Test

[단위 테스트] 8-2. 통합 테스트를 하는 이유: 인터페이스

noahkim_ 2025. 3. 1. 06:29

블라디미르 코리코프 님의 "단위 테스트" 책을 정리한 포스팅입니다.

 

4. 의존성 추상화를 위한 인터페이스 사용

인터페이스와 느슨한 결합

인터페이스 사용의 잘못된 인식
  • 프로세스 외부 의존성을 추상화하여 느슨한 결합을 달성
    • 단일 구현일 경우, 추상화가 아니게 됨
    • 진정한 추상화는 발견하는 것이지 발명하는 것이 아님 (적어도 구현이 두가지 이상 있어야 함)
    • YAGNI 위반

 

프로세스 외부 의존성에 인터페이스를 사용하는 이유는?

목을 사용하기 위함
  • 인터페이스가 없으면 테스트 대역을 만들 수 없음
  • 즉, 비관리 의존성만 인터페이스를 두기

 

5. 통합 테스트 모범 사례

항목 장점 단점 권장 사항
도메인 모델 경계 명시 단위 테스트와 통합 테스트 구분 쉬움 -  
계층 수 줄이기 단순화, 탐색 쉬움 계층 많을수록 책임 모호
테스트 어려움
도메인 모델, 애플리케이션 서비스, 인프라 계층만 사용
순환 의존성 제거 테스트 용이성 증가 테스트 방해, 목 처리 필요
→ 도메인 테스트에 부적합
설계 시 순환 의존성 방지
다중 실행 구절 사용 시나리오 설득력 있음 테스트 초점 흐려짐
크기 증가
고유 테스트로 분리하거나 외부 의존 묶어 처리