-
[TDD] @Mock vs @MockBeanTDD 2024. 8. 31. 22:12
[Mock 객체를 스프링 컨텍스트에 의해 로드된 Bean 에 주입하고 싶을때]
@SpringBootTest (실제 Spring Context를 로드하고)
+ @Autowired (테스트할 대상을 실제 Bean으로 의존성 주입 받겠다)
+ @MockBean (그럼 해당 @Autowired로 사용될 Bean에 Mock Bean을 넣어줘야한다)
Spring Context에 의해 로드된 Bean을 대상으로 테스트를 진행할때는
해당 Bean에 일반적인 Mock 객체가 아닌, "MockBean" 객체를 주입시켜줘야한다
[Mock 객체를 Mock 객체에 주입하고 싶을때]
@ExtendWith(MockitoExtension.class) (Mockito 기반 테스트 코드를 작성하겠다)
+ @InjectMocks (그리고 테스트할 대상도 그냥 Mock 객체로 할 것이다)
+ @Mock (테스트할 Mock 객체에 주입할 Mock 객체 선언)
그냥 @InjectMocks 로 특정 클래스를 테스트하고 있다면이건 전체 Spring Context를 로드하는 방식이 아니므로일반적인 Mock 객체를 주입해주면 된다
그래서 스프링을 띄우지 않으므로 @MockBean으로 테스트할때보다 빠르다!!
'TDD' 카테고리의 다른 글
[TDD] @DataJpaTest (2) 2024.09.10 [TDD] @Spy (0) 2024.09.01 [TDD] Mockito annotations.zip (0) 2024.08.31 [TDD] @WebMvcTest vs MockMvcBuilders.standaloneSetup (0) 2024.08.31 [TDD] Spring Boot 테스트 종류 (1) 2024.08.31