ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TDD] @Mock vs @MockBean
    TDD 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