테스트할 떄 의존성을 해결하는 방법이 다양하게 존재한다. 모든 의존성(데이터베이스 등)을 그대로 사용하는 테스트도 존재하지만 그런 테스트는 너무 무겁고 오래 걸린다. 일반적으로 의존성을 각자 객체로 스왑 후 사용한다.
📻 Mock
- Mock는 상호작용 즉, 실행이 됐는지 안됐는지 검증하는 객체이다.
🎛 Stub
- Stub는 함수나 객체의 간소화된 버전으로 미리 정의된 값을 반환한다.
🎙 Fake
- Fake는 실제 객체를 간소하게 구현한 형태이다. 복잡한 실제 객체의 작동 방식을 최소화하여 구현한 형태이다. 실제 객체는 너무 헤비하지만 Stub 보다는 현실적인 작동이 필요할 때 많이 사용된다
