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;


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow