Jak sprawdzić metodę nazywa się dwa razy za pomocą mockito Verse ()

307

Chcę sprawdzić, czy metoda jest wywoływana przynajmniej raz za pomocą weryfikacji mockito. Użyłem weryfikacji i narzeka tak:

org.mockito.exceptions.verification.TooManyActualInvocations: 
Wanted 1 time:
But was 2 times. Undesired invocation:
Ahmad Beg
źródło

Odpowiedzi:

519

Korzystanie z odpowiedniego trybu weryfikacji:

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");
Liosan
źródło
22
Możesz także użyć Mockito.times(...)zamiast VerificationModeFactory.times(...)do importowania statycznego
Wim Deblauwe
26
import static org.mockito.Mockito.times;. Generalnie nie zaleca się importowania pakietów z „wewnętrznymi” w nich ( import static org.mockito.internal.verification.VerificationModeFactory.times;).
Roger
czy istnieje inny sposób pisania czasów (1)?
Glenn Bech,
1
@GlennBech Możesz to pominąć , jest to domniemane; domyślnie verify(mockObject).someMethod("")szuka dokładnie 1 interakcji (nie więcej, nie mniej). Jeśli zamiast tego chcesz przynajmniej wywołać tę metodę, możesz użyć atLeastOnce()specyfikatora.
nbrooks,
1
@Roger Zgadzam się z tobą, dla początkującego praktyka TDD, takiego jak ja, import statyczny sprawia, że ​​bardziej mylę się z zapamiętywaniem metod lub używanego frameworka (Mockito, Espresso lub po prostu zwykły test jednostkowy).
Pomyśl dwukrotnie Kod raz