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 메서드입니다.