mockito
Überprüfen Sie Methodenaufrufe
Suche…
Einfache Methodenaufrufprüfung
Mit Mockito.verify()
kann überprüft werden, ob eine Methode für einen Schein Mockito.verify()
.
Original mock = Mockito.mock(Original.class);
String param1 = "Expected param value";
int param2 = 100; // Expected param value
//Do something with mock
//Verify if mock was used properly
Mockito.verify(mock).method();
Mockito.verify(mock).methodWithParameters(param1, param2);
Überprüfen Sie die Reihenfolge der Anrufe
In einigen Fällen reicht es nicht aus, zu wissen, ob mehr als eine Methode aufgerufen wurde. Die Aufrufreihenfolge von Methoden ist ebenfalls wichtig. In diesem Fall können Sie die InOrder
Klasse von Mockito
, um die Reihenfolge der Methoden zu überprüfen.
SomeClass mock1 = Mockito.mock(SomeClass.class);
otherClass mock2 = Mockito.mock(OtherClass.class);
// Do something with mocks
InOrder order = Mockito.inOrder(mock1, mock2)
order.verify(mock2).firstMethod();
order.verify(mock1).otherMethod(withParam);
order.verify(mock2).secondMethod(withParam1, withParam2);
Der InOrder.verify()
funktioniert genauso wie Mockito.verify()
alle anderen Aspekte.
Überprüfen Sie die Aufrufargumente mit ArgumentCaptor
ArgumentCaptor
empfängt die tatsächlichen Aufrufargumente, die an die Methode übergeben wurden.
ArgumentCaptor<Foo> captor = ArgumentCaptor.forClass(Foo.class);
verify(mockObj).doSomethind(captor.capture());
Foo invocationArg = captor.getValue();
//do any assertions on invocationArg
Für den Fall, dass mehrere Aufrufe der gespielten Methode alle Aufrufargumente erhalten
List<Foo> invocationArgs = captor.getAllValues();
Der gleiche Ansatz wird für das Erfassen von Variationen verwendet.
Es gibt auch die Möglichkeit, ArgumentCaptor
mit @Captor
Annotation zu erstellen:
@Captor
private ArgumentCaptor<Foo> captor;