Suponiendo el siguiente método para probar:
public boolean doSomething(SomeClass arg);
Documentación Mockito dice que usted debe no utilizar captor de esta manera:
when(someObject.doSomething(argumentCaptor.capture())).thenReturn(true);
assertThat(argumentCaptor.getValue(), equalTo(expected));
Debido a que solo puede usar matcher durante el apisonamiento:
when(someObject.doSomething(eq(expected))).thenReturn(true);
Pero la verificación es una historia diferente. Si su prueba necesita asegurarse de que este método fue llamado con un argumento específico, use ArgumentCaptor
y este es el caso para el que está diseñado:
ArgumentCaptor<SomeClass> argumentCaptor = ArgumentCaptor.forClass(SomeClass.class);
verify(someObject).doSomething(argumentCaptor.capture());
assertThat(argumentCaptor.getValue(), equalTo(expected));