mockito
Controleer methode-aanroepen
Zoeken…
Eenvoudige methode oproepverificatie
Men kan verifiëren of een methode op een mock werd aangeroepen door 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);
Controleer de volgorde van oproepen
In sommige gevallen is het misschien niet voldoende om te weten of er meer één methode werd genoemd. De roepvolgorde van methoden is ook belangrijk. In dat geval kunt u de InOrder
klasse van Mockito
gebruiken om de volgorde van de methoden te verifiëren.
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);
De InOrder.verify()
werkt hetzelfde als Mockito.verify()
alle andere aspecten.
Controleer call-argumenten met ArgumentCaptor
ArgumentCaptor
zal de feitelijke aanroepingsargumenten ontvangen die zijn doorgegeven aan de methode.
ArgumentCaptor<Foo> captor = ArgumentCaptor.forClass(Foo.class);
verify(mockObj).doSomethind(captor.capture());
Foo invocationArg = captor.getValue();
//do any assertions on invocationArg
Voor gevallen van meerdere aanroepen van de bespotte methode om alle aanroepingsargumenten te ontvangen
List<Foo> invocationArgs = captor.getAllValues();
Dezelfde aanpak wordt gebruikt voor het vastleggen van varargs.
Er is ook een mogelijkheid om ArgumentCaptor
te maken met behulp van @Captor
annotatie:
@Captor
private ArgumentCaptor<Foo> captor;