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:

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.