블라디미르 코리코프 님의 "단위 테스트" 책을 정리한 포스팅입니다.
2. 런던파와 고전파
- 격리 특성에 따라 나뉨
런던파
- 작은 코드 조각 단위
- 테스트 대상 시스템을 협력자에게서 완전히 격리
- 모든 의존성을 Mock으로 대체
- 코드 조각을 테스트 대역으로 분리 (단, 불변 비공개 의존성은 제외)
하향식 TDD
- 전체 설계와 인프라부터 준비하고, 이를 기반으로 상위 레벨 테스트 및 하위 레벨 구현
장점
- 입자성
- 테스트 실패 시, 코드베이스의 어느 부분이 고장 났는지 명확히 알 수 있음
- 의존성에서 문제가 발생하면 테스트가 실패함
- SUT의 문제인지 직관적으로 확인할 수 없음
- 객체 그래프를 분할할 수 있음
- 객체 그래프를 재생성하지 않아도 됨
- 서로 연결된 클래스의 그래프가 커져도 테스트 용이
단점
- 과잉 명세
- 과도한 명세로 인해 테스트가 SUT의 세부 사항에 의존하게 됨
- 코드 단위
- 동작 단위가 아니여서 초점이 잘못됨
고전파
- 단일 동작 단위로 검증
- 공유 의존성만 테스트 대역을 설정하여 격리하는 방법
- 모든 의존성을 Mock으로 대체하지 않아도 됨
단일 동작 단위
- 테스트는 시스템의 개별 동작이나 기능을 검증하는데 초점을 맞춰야 함
상향식 TDD
- 작은 단위부터 테스트를 작성한 후, 하위레벨 구현부터 상위레벨을 통합하는 순서
장점
- 현실적인 테스트 가능
단점
- 문제 위치 추적 난이도 상승
'Code' 카테고리의 다른 글
[단위 테스트] 2-1. 단위 테스트란 무엇인가: 단위 테스트란 (0) | 2025.01.07 |
---|---|
[단위 테스트] 1-2. 단위 테스트의 목표: 커버리지 지표 (0) | 2025.01.06 |
[단위 테스트] 1-1. 단위 테스트의 목표: 단위 테스트 목표 (0) | 2025.01.06 |
[ 리팩토링 by 마틴 파울러 ] Chapter12. 상속 다루기 (0) | 2021.07.22 |
[ 리팩토링 by 마틴 파울러 ] Chapter11. API 리팩토링 (0) | 2021.07.22 |