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