자바/리팩토링
[테스트코드] Mockito API
OverTheHorizon3410
2023. 10. 22. 00:55
1. @Mock
- 의미
@Mock
어노테이션은 Mockito에게 해당 필드를 모의 객체로 만들어야 함을 알림.
- 사용 시기
- 테스트할 클래스의 외부 의존성을 모킹할 때 사용함.
@Mock
private CartPersistence cartPersistence;
@Mock
private CartMapper cartMapper;
2. @InjectMocks
- 의미
@InjectMocks
어노테이션은 테스트 대상 클래스의 인스턴스를 생성하고, 모의 객체를 해당 클래스의 필드에 주입함.
- 사용 시기
- 테스트할 클래스의 인스턴스를 생성하고 모의 객체를 주입할 때 사용함.
@InjectMocks
private CartServiceImpl cartService;
3. when(...)
- 의미
when
메서드는 모의 객체의 메서드가 호출됐을 때 어떤 동작을 수행할지 지정함.
- 사용 시기
- 모의 객체의 메서드 호출에 대한 반환값이나 예외를 지정할 때 사용함.
when(cartMapper.selectCartByUserId(cartReqDTO.getUserId(), cartReqDTO.getProductId())).thenReturn(expectedCart);
4. thenReturn(...)
- 의미
thenReturn
메서드는when
메서드와 함께 사용하여 모의 객체의 메서드 호출에 대한 반환값을 지정함.
- 사용 시기
- 모의 객체의 메서드 호출에 대한 반환값을 지정할 때 사용함.
...thenReturn(expectedCart);
5. verify(...)
- 의미:
verify
메서드는 모의 객체의 메서드가 특정 횟수만큼 호출됐는지 검증함.
- 사용 시기
- 모의 객체의 메서드 호출 횟수를 검증할 때 사용함.
verify(cartPersistence, times(1)).insertCart(cartReqDTO);
6. times(...)
- 의미
times
메서드는 모의 객체의 메서드가 특정 횟수만큼 호출됐는지 지정함.
- 사용 시기
- 모의 객체의 메서드 호출 횟수를 지정할 때 사용함.
..., times(1))...
Uploaded by N2T