mockito
Verificar llamadas de método
Buscar..
Método simple de verificación de llamadas
Uno puede verificar si un método fue llamado en un simulacro 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);
Verificar orden de llamadas
En algunos casos, puede que no sea suficiente saber si se llamaron más de un método. El orden de llamada de los métodos también es importante. En tal caso, es posible utilizar InOrder
clase de Mockito
para verificar el orden de los métodos.
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()
funciona igual que Mockito.verify()
todos los demás aspectos.
Verifique los argumentos de la llamada usando ArgumentCaptor
ArgumentCaptor
recibirá los argumentos de invocación reales que se han pasado al método.
ArgumentCaptor<Foo> captor = ArgumentCaptor.forClass(Foo.class);
verify(mockObj).doSomethind(captor.capture());
Foo invocationArg = captor.getValue();
//do any assertions on invocationArg
Para casos de invocaciones múltiples de método simulado para recibir todos los argumentos de invocación
List<Foo> invocationArgs = captor.getAllValues();
El mismo enfoque se utiliza para capturar varargs.
También existe la posibilidad de crear ArgumentCaptor
usando la anotación @Captor
:
@Captor
private ArgumentCaptor<Foo> captor;
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow