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;


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow