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
'자바 > 리팩토링' 카테고리의 다른 글
[리팩토링]트랜잭션의 격리수준 (0) | 2023.10.24 |
---|---|
[DB락] MYSQL INNODB 락 관련 게시물 참고 (0) | 2023.10.24 |
[리팩토링]동시성을 가지는 서비스에 대한 테스팅 - ExecutorService 와 Future (0) | 2023.10.10 |
[리팩토링]출고 → 배송 → 도착 순서 보장을 어떻게 할 수 있을까? (0) | 2023.10.08 |
[리팩토링]Spring boot 2.7 에서 schema.sql 한글 깨짐 (0) | 2023.10.07 |