Metod çağrısı yaptığınız anda dönüş değerini biliyorsanız, thenReturn
veya doReturn
kullanmalısınız. Bu tanımlı değer, alay yöntemini çağırdığınızda döndürülür.
thenReturn(T value)
Yöntem çağrıldığında döndürülen bir dönüş değeri belirler.
@Test
public void test_return() throws Exception {
Dummy dummy = mock(Dummy.class);
int returnValue = 5;
// choose your preferred way
when(dummy.stringLength("dummy")).thenReturn(returnValue);
doReturn(returnValue).when(dummy).stringLength("dummy");
}
Answer
bir alay yöntem çağrıldığında Eğer örneğin ek eylemleri yapmak gerektiğinde kullanılır Bu yöntem çağrısı parametrelerine dayanarak dönüş değerini hesaplamanız gerektiğinde. Eğer jenerik
Answer
bir boşluk yöntemi saplama istiyorum
kullanın doAnswer()
.
Yanıt, gerçekleştirilen bir eylemi ve alayla etkileşime girdiğinizde döndürülen bir dönüş değerini belirtir.
@Test
public void test_answer() throws Exception {
Dummy dummy = mock(Dummy.class);
Answer<Integer> answer = new Answer<Integer>() {
public Integer answer(InvocationOnMock invocation) throws Throwable {
String string = invocation.getArgumentAt(0, String.class);
return string.length() * 2;
}
};
// choose your preferred way
when(dummy.stringLength("dummy")).thenAnswer(answer);
doAnswer(answer).when(dummy).stringLength("dummy");
}
teşekkürler @schlauergerd. Şimdi anladım. –
Merhaba @Roland Weisleder, ancak bazen bir miktar üretilen iç kodu döndürmeli ve argümanlarla ilgisi yoktur. 'code = UUID.randomUUID()', bunu 'mockito' ile uygulamak imkansız buldum. – zhuguowei
Sahibiniz her bir çağrışım için yeni bir UUID döndürdüğünde, UUID.randomUUID(); –