En supposant que la méthode suivante soit utilisée pour le test :
public boolean doSomething(SomeClass arg);
La documentation de Mockito indique que vous devez no utiliser le capteur de cette manière :
when(someObject.doSomething(argumentCaptor.capture())).thenReturn(true);
assertThat(argumentCaptor.getValue(), equalTo(expected));
Parce que vous pouvez simplement utiliser le matcher pendant le stubbing :
when(someObject.doSomething(eq(expected))).thenReturn(true);
Mais la vérification est une autre histoire. Si votre test doit s'assurer que cette méthode a été appelée avec un argument spécifique, utilisez ArgumentCaptor
et c'est le cas pour lequel il est conçu :
ArgumentCaptor<SomeClass> argumentCaptor = ArgumentCaptor.forClass(SomeClass.class);
verify(someObject).doSomething(argumentCaptor.capture());
assertThat(argumentCaptor.getValue(), equalTo(expected));