programing

Java는 Mockito를 사용하여 비활성 메서드 호출을 n회 확인합니다.

copysource 2022. 8. 28. 21:16
반응형

Java는 Mockito를 사용하여 비활성 메서드 호출을 n회 확인합니다.

DAO 내에서 (void) 메서드가 호출되고 있는지 확인하려고 합니다.그 시점까지 결과 목록을 전송하고 목록을 리셋한 후 계속하는 커밋 포인트를 사용하고 있습니다.리스트에 4개의 항목이 있고 커밋 포인트가 1이라고 하면, 「송신」메서드가 4회 호출되는 것을 상정하고 있습니다.메서드가 한 번 호출되는 것을 서면으로 확인할 수 있습니다.

Mockito.verify(mock).send()

지나간다..호출 횟수를 확인하고 싶습니다.라고 생각합니다.

Mockito.verify(mock.send(), times(4))

충분한데 검증용 파라미터가 올바르지 않다고 합니다.

덧붙여서, 만약 내가 변한다면Mockito.verify(mock).send()로.Mockito.verify(mock.send())또는Mockito.verify((mock).send())같은 에러가 발생.어떻게 생각해?

필요한 방법은 Mockito#verify 입니다.

public static <T> T verify(T mock,
                           VerificationMode mode)

mock당신의 조롱의 대상이고modeVerificationMode검증 방법을 기술하고 있습니다.사용 가능한 모드는 다음과 같습니다.

verify(mock, times(5)).someMethod("was called five times");
verify(mock, never()).someMethod("was never called");
verify(mock, atLeastOnce()).someMethod("was called at least once");
verify(mock, atLeast(2)).someMethod("was called at least twice");
verify(mock, atMost(3)).someMethod("was called at most 3 times");
verify(mock, atLeast(0)).someMethod("was called any number of times"); // useful with captors
verify(mock, only()).someMethod("no other method has been called on the mock");

이 클래스로부터의 스태틱 Import가 필요합니다.verify방법 및 다음 확인 모드:

import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.atMost;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.only;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

따라서 이 경우 올바른 구문은 다음과 같습니다.

Mockito.verify(mock, times(4)).send()

이를 통해 메서드가send조롱 대상물에 대해 4번이나 호출되었습니다.4번 이상 호출하면 실패합니다.


체크하고 싶은 경우, 메서드가 한 번 호출된 경우, 이 메서드를 통과시킬 필요가 없습니다.VerificationMode심플.

verify(mock).someMethod("was called once");

충분할 거예요.내부적으로는verify(mock, times(1)).someMethod("was called once");.


같은 모의에 복수의 검증 콜을 실시해, 「간」의 검증을 실시할 수 있습니다.Mockito는 이런 걸 지원하지 않아요.verify(mock, between(4,6)).someMethod("was called between 4 and 6 times");그러나 우리는 쓸 수 있다.

verify(mock, atLeast(4)).someMethod("was called at least four times ...");
verify(mock, atMost(6)).someMethod("... and not more than six times");

대신, 같은 행동을 취하기 위해.경계가 포함되므로, 방법이 4, 5 또는 6번 호출되었을 때 검정 사례가 녹색입니다.

언급URL : https://stackoverflow.com/questions/27787487/java-verify-void-method-calls-n-times-with-mockito

반응형