상호작용의 검증이라는 키워드에 집중하여, 내부 의존성과 외부 의존성이 있다고 정의
내부 의존성
- 현재 우리 시스템 안에 있어 직접 제어가 가능한 시스템에 대한 의존성
- ex) MySQL, Redis
- 실제 객체에 접근하도록 테스트 코드를 작성
외부 의존성
- 우리 시스템 밖에 있어 직접 제어가 불가능한 시스템에 대한 의존성
- ex) CLOVA Sentiment, Object Storage
- 실제 객체가 아니라 Mocking한 가짜 의존성을 가진 객체를 가져와 테스트하도록 작성
- 너무 많은 Mocking은 실제 의존성을 검증하지 못할 수 있으므로, 최대한 Mocking을 자제하고 꼭 필요한 경우에만 Mocking을 진행