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 ArgumentCaptory 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));