Giriş
Bu kullanım when + thenReturn ile benzer. Açıklaması şöyle. Yani thenReturn()'den farklı olarak aynı sonucu dönmek yerine her seferinde farklı bir sonuç döndürürebilir.
Şöyle yaparız.
Örnek
Metod'a geçilen parametrelere erişmek için şöyle yaparız.
Bu kullanım when + thenReturn ile benzer. Açıklaması şöyle. Yani thenReturn()'den farklı olarak aynı sonucu dönmek yerine her seferinde farklı bir sonuç döndürürebilir.
the difference is: answer will every time be executed. Return remembers the value we told them in the when.Örnek
Şöyle yaparız.
when(someMock.someMethod()).thenAnswer(new Answer() {
private int count = 0;
public Object answer(InvocationOnMock invocation) {
return (count++;
}
});
invocation.getArguments metoduÖrnek
Metod'a geçilen parametrelere erişmek için şöyle yaparız.
when(rt.exchange(anyString(), any(HttpMethod.class), any(), any()))
.thenAnswer((invocation) -> {
Object paramToCheck = invocation.getArguments()[3];
if(paramToCheck instanceof String){
return response;
}else if (paramToCheck instanceof InfsEspecificasDTO){
return responseInfoEsp;
}
return null;
});