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:

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");

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.