Das Überprüfen einer Methode wird zweimal mit mockito verify () aufgerufen.

307

Ich möchte überprüfen, ob eine Methode mindestens einmal durch mockito verify aufgerufen wird. Ich habe verify verwendet und es beschwert sich wie folgt:

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

Antworten:

519

Verwenden des entsprechenden Verifizierungsmodus:

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
quelle
22
Sie können auch Mockito.times(...)anstelle VerificationModeFactory.times(...)für den statischen Import verwenden
Wim Deblauwe
26
import static org.mockito.Mockito.times;. Im Allgemeinen import static org.mockito.internal.verification.VerificationModeFactory.times;wird davon abgeraten , Pakete mit "intern" ( ) zu importieren .
Roger
Gibt es eine andere Art, Zeiten zu schreiben (1)?
Glenn Bech
1
@GlennBech Das kannst du einfach weglassen , es ist implizit; Die Standardeinstellung ist verify(mockObject).someMethod("")genau 1 Interaktion (nicht mehr und nicht weniger). Wenn Sie stattdessen mindestens einen Aufruf der Methode wünschen, können Sie den Bezeichner verwenden atLeastOnce().
Nbrooks
1
@ Roger Ich stimme Ihnen zu, für einen TDD-Anfänger wie mich macht mich der statische Import verwirrender, wenn ich mich an die Methoden erinnere oder welches Framework verwendet wird (Mockito, Espresso oder nur normaler Unit-Test).
Denken Sie zweimal Code einmal