https://www.inflearn.com/course/practical-testing-실용적인-테스트-가이드
<aside>
💡
- @Mock, @MockBean, @Spy, @SpyBean, @InjectMocks 의 차이를 한번 정리해 봅시다.
</aside>
@Mock
- 진짜 객체가 아닌 가짜 객체를 생성해서 (테스트에) 사용
- Spring Context와 무관
- @InjectMocks나 수동으로 주입 가능
- 단위 테스트에서 사용
@MockBean
- Spring에 의존적
- Spring 빈에 등록된 객체를 Mock으로 대체
- Spring에서 의존성 주입을 해줌
- 통합 테스트에 사용
@Spy
- 실제 객체의 일부 동작만 Mocking (객체의 일부만 stub 처리)
- Spring Context와 무관
- 단위 테스트에 사용