Test etmek için aşağıdaki yöntemi varsayarsak:
public boolean doSomething(SomeClass arg);
Mockito dokümantasyon sen gerektiğini söylüyor değil bu şekilde esir kullanın:
when(someObject.doSomething(argumentCaptor.capture())).thenReturn(true);
assertThat(argumentCaptor.getValue(), equalTo(expected));
Çünkü kibrit sırasında eşleştiriciyi kullanabilirsiniz:
when(someObject.doSomething(eq(expected))).thenReturn(true);
Ancak doğrulama farklı bir hikaye. Testinizin bu yöntemin belirli bir argümanla çağrıldığından emin olması gerekiyorsa, kullanın ArgumentCaptor
ve bunun için tasarlandığı durum budur:
ArgumentCaptor<SomeClass> argumentCaptor = ArgumentCaptor.forClass(SomeClass.class);
verify(someObject).doSomething(argumentCaptor.capture());
assertThat(argumentCaptor.getValue(), equalTo(expected));