Niezbędna metoda to weryfikacja Mockito # :
public static <T> T verify(T mock,
VerificationMode mode)
mock
to twój wyśmiewany obiekt i mode
to on VerificationMode
opisuje, jak powinna zostać zweryfikowana. Możliwe tryby to :
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");
Będziesz potrzebować tych statycznych importów z Mockito
klasy, aby użyć verify
metody i tych trybów weryfikacji:
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;
Więc w twoim przypadku poprawna składnia będzie wyglądać następująco:
Mockito.verify(mock, times(4)).send()
To sprawdza, czy metoda send
została wywołana 4 razy na mockowanym obiekcie. Nie powiedzie się, jeśli został wywołany mniej lub więcej niż 4 razy.
Jeśli chcesz tylko sprawdzić, czy metoda została wywołana raz, nie musisz przekazywać pliku VerificationMode
. Prosty
verify(mock).someMethod("was called once");
powinno wystarczyć. Używa wewnętrznie verify(mock, times(1)).someMethod("was called once");
.
Możliwe jest posiadanie wielu wywołań weryfikacyjnych na tym samym makiecie, aby uzyskać weryfikację „pomiędzy”. Mockito nie obsługuje czegoś takiego verify(mock, between(4,6)).someMethod("was called between 4 and 6 times");
, ale możemy pisać
verify(mock, atLeast(4)).someMethod("was called at least four times ...");
verify(mock, atMost(6)).someMethod("... and not more than six times");
zamiast tego uzyskać to samo zachowanie. Granice są uwzględnione , więc przypadek testowy jest zielony, gdy metoda została wywołana 4, 5 lub 6 razy.
Mockito.verify(mock, times(4)).send()
. Zastanawiam się, dlaczego „przeniosłeś”send()
wywołanie metody wewnątrzverify
metody. Masz już odpowiednią składnię.