mockito verify ()로 메소드를 두 번 호출하는지 확인하는 방법


307

mockito verify를 통해 메소드가 적어도 한 번 호출되는지 확인하고 싶습니다. 확인을 사용했으며 다음과 같이 불평합니다.

org.mockito.exceptions.verification.TooManyActualInvocations: 
Wanted 1 time:
But was 2 times. Undesired invocation:

답변:


519

적절한 검증 모드 사용 :

import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

verify(mockObject, atLeast(2)).someMethod("was called at least twice");
verify(mockObject, times(3)).someMethod("was called exactly three times");

22
정적 임포트 Mockito.times(...)대신 사용할 수도 있습니다VerificationModeFactory.times(...)
Wim Deblauwe

26
import static org.mockito.Mockito.times;. 일반적으로 "internal"이 포함 된 패키지를 가져 오는 import static org.mockito.internal.verification.VerificationModeFactory.times;것은 권장하지 않습니다 ( ).
Roger

시간을 쓰는 다른 방법이 있습니까 (1)?
Glenn Bech

1
@GlennBech 당신은 그것을 생략 할 수있다 . 그것은 암시 적이다; 기본값 verify(mockObject).someMethod("")은 정확히 1 개의 상호 작용을 찾습니다 (더 이상, 더 이상은 아님). 대신 메소드를 한 번 이상 호출 하려는 경우 atLeastOnce()지정자를 사용할 수 있습니다 .
nbrooks

1
@Roger 저와 같은 TDD 실습자를 위해 정적 가져 오기를 사용하면 메소드 기억 또는 프레임 워크 사용 (Mockito, Espresso 또는 정상적인 단위 테스트)에 대해 더 혼란 스럽습니다.
사고 두 번 코드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.