
120
1
부
도메인 모델링을 지원하는 아키텍처 구축
이 책을 읽다보면 서비스 계층이 시스템을 다양한 방식으로 조정할 수 있는
API
를 형성하게 된
다는 점을 배우게 된다.
API
에 대해 테스트를 작성하면 도메인 모델을 리팩터링할 때 변경해야
하는 코드의 양을 줄일 수 있다. 이 서비스 계층에 대한 테스트만 수행하도록 우리 자신을 제한
하고, 직접 모델 객체의 ‘사적인’ 속성이나 메서드와 테스트가 직접 상호작용하지 못하게 막는
다면 좀 더 자유롭게 모델 객체를 리팩터링할 수 있다.
TIP
_
테스트에 넣는 코드는 한 줄, 한 줄이 마치 본드 방울 같다. 이 본드 방울은 시스템을 특정 모양으로 만
든다. 테스트가 더 저수준일수록 시스템 각 부분을 변경하기가 더 어려워진다.
5.3
어떤 종류의 테스트를 작성할지 결정하는 방법
여러분은 “그렇다면 모든 단위 테스트를 다시 작성해야 할까? 도메인 모델을 직접 사용하는 테
스트를 작성하면 잘못된 건가?”라고 질문할 수도 있다. 이런 질문에 답하려면 결합과 설계 피
드백 사이의 트레이드오프를 꼭 이해해야 한다 (그림
5
-
1
).
그림
5-1
테스트 스펙트럼
익스트림 프로그래밍
extreme
programming
(
XP
)에서는 “코드에 귀를 기울여라”라고 말한다. 테스트
작성 시 (테스트 대상인 ) 코드가 사용하기 어렵다는 사실을 발견하거나 ...