<aside>
💡 👀 5장에서 다루는 내용 👀
✔️ 목과 스텁 구분
✔️식별할 수 있는 동작과 구현 세부 사항 정의
✔️목과 테스트 취약성 간의 관계 이해
✔️리팩터링 내성 저하 없이 목 사용하기
</aside>
5.1 목과 스텁 구분
<aside>
💡 목은 테스트 대상 시스템(SUT)과 그 협력자 사이의 상호 작용을 검사할 수 있는 테스트 대역이다.
테스트 대역에는 또 다른 유형으로 스텁(Stub)이 있다. 5장에서는 목이 무엇이고 스텁과 어떻게 다른지 알아본다.
</aside>
5.1.1 테스트 대역 유형
- 테스트 대역 : 비 운영용 가짜 의존성을 설명하는 포괄적인 용어
- 영화 산업의 ‘스턴트 대역’ 개념에서 비롯
- 테스트 대역에는 더미, 스텁, 스파이, 목, 페이크라는 다섯가지가 있다.

테스트 대역의 모든 변형은 목과 스텁 두 가지 유형으로 나눌 수 있다.

5.1.2 도구로서의 목과 테스트 대역으로서의 목
- 목 라이브러리의 클래스는 실제 목을 만드는 데 도움이 되지만, 그 자체로는 목이 아니다.
- 예제 5.1
- Mock 클래스는 도구로서의 목인 데 반해, 해당 클래스의 인스턴스인 mock은 테스트 대역으로서의 목이다.
- 도구로서의 목을 사용해 목과 스텁, 두 가지 유형의 테스트 대역을 생성할 수 있기 때문에 도구로서의 목과 테스트 대역으로서의 목을 혼동하지 않는 것이 중요하다.
- 예제 5.2 : Mock 클래스를 사용하지만 해당 클래스의 인스턴스는 목이 아니라 스텁이다.
- 예제 5.2
- 내부로 들어오는 상호 작용, SUT에 입력 데이터를 제공하는 호출을 모방한다.
5.1.3 스텁으로 상호 작용을 검증하지 말라