Mock이 무엇인가?

→ 실제 객체를 흉내 내는 가짜 객체이다.

예를 들어 VetService가 VetRepository를 사용할 때 실제 구현체를 만들어서 사용하는 것이 아니라 가짜 VetRepository를 만들어서 테스트할 때 사용하는 것이다.

1. JUnit 5에서 Mockito 사용 설정

@ExtendWith(MockitoExtension.class) 애노테이션을 달아준다.

@ExtendWith(MockitoExtension.class)
class VetServiceTest {
}

2. @Mock

Mock 가짜 객체를 생성할 때는 @Mock 애노테이션을 사용한다.

즉 의존성하려는 객체에다가 달아주면 된다.

@Mock
private VetRepository vetRepository;

3. @InjectMocks

Mock 객체를 자동으로 주입받는 실제 테스트 대상을 지정해주는 것이다.

즉, 테스트할 객체 대상에다가 달아준다

@InjectMocks
private VetService vetService;

4. 사용법

  1. when().thenReturn(): 반환값을 지정한다.
    1. Mock 객체의 특정 메서드가 호출되었을 때 반환할 값을 미리 지정한다.