[테스트코드] Mockito API

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