mockito
Verifica le chiamate al metodo
Ricerca…
Verifica della chiamata al metodo semplice
Si può verificare se un metodo è stato chiamato su un mock usando 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);
Verifica l'ordine delle chiamate
In alcuni casi potrebbe non essere sufficiente sapere se sono stati chiamati più metodi. Anche l'ordine di chiamata dei metodi è importante. In tal caso si può utilizzare InOrder
classe di Mockito
per verificare l'ordine dei metodi.
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);
InOrder.verify()
funziona come Mockito.verify()
tutti gli altri aspetti.
Verifica gli argomenti di chiamata usando ArgumentCaptor
ArgumentCaptor
riceverà gli argomenti di chiamata effettivi che sono stati passati al metodo.
ArgumentCaptor<Foo> captor = ArgumentCaptor.forClass(Foo.class);
verify(mockObj).doSomethind(captor.capture());
Foo invocationArg = captor.getValue();
//do any assertions on invocationArg
Per i casi di invocazioni multiple del metodo mocked per ricevere tutti gli argomenti di invocazione
List<Foo> invocationArgs = captor.getAllValues();
Lo stesso approccio è usato per catturare vararg.
Inoltre c'è la possibilità di creare ArgumentCaptor
usando @Captor
annotazione @Captor
:
@Captor
private ArgumentCaptor<Foo> captor;
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow