Spring/Spring 문법
Mock 을 이용한 테스트 코드 - argument matcher
열심히 해
2024. 11. 26. 16:55
Long seatNum = 1L;
// 이건 오류 발생
when(lockService.acquireLock(seatNum, anyLong()))
// 이건 정상 작동
when(lockService.acquireLock(eq(seatNum), anyLong()))
- Mockito의 argument matcher와 일반 인자를 혼용하면 InvalidUseOfMatchersException 발생합니다.
- 모든 인자에 매처를 사용하거나 모든 인자를 일반 값으로 사용해야 합니다.
// 모든 인자를 matcher로 처리하는 경우
when(lockService.acquireLock(any(), anyLong()))
matcher 사용 규칙:
- 한 메서드 호출에서 matcher 사용 시, 모든 인자에 matcher 적용 필요합니다.
- eq()는 특정 값과 정확히 일치하는지 확인하는 matcher 메서드입니다.