Giriş
Kullanım şekli şöyle
when() metodu thenReturn() ile kullanılır. Şu metod bu parametre ile çağrılınca bu sonucu dön anlamına gelir.
-Eğer belirtilen parametre dışında bir girdi ile çağırırsak null döner. Açıklaması şöyle.
Örnek
Şöyle yaparız.
Elimizde şöyle bir kod olsun
Elimizde şöyle bir sınıf olsun
- thenReturn() metodları zincir gibi bağlanabilir. Şu metod bu parametre ile çağırınlınca önce ilk thenReturn(), sonra ikinci thenReturn() sonucu dönülür. Eğer daha fazla çağırırsak en son thenReturn() dönülür. Açıklaması şöyle
Örnek
Şöyle yaparız.
Kullanım şekli şöyle
Mockito.when(mock.method(args)).thenReturn(value)
when metoduwhen() metodu thenReturn() ile kullanılır. Şu metod bu parametre ile çağrılınca bu sonucu dön anlamına gelir.
-Eğer belirtilen parametre dışında bir girdi ile çağırırsak null döner. Açıklaması şöyle.
If you invoke a Mock with parameters that you haven’t told it to expect then it will just return null-Eğer parametrenin ne olduğu ile ilgilenmiyorsak any(), anyLong(), anyString(), anyInt(), anyFloat(), anyDouble(), anyByte(), anyListOf(), anyMapOf(), anySetOf() gibi bir ArgumentMatcher kullanabiliriz.
Örnek
Şöyle yaparız.
B b = Mockito.mock(B.class)
Mockito.when(b.execute()).thenReturn("String")
ÖrnekElimizde şöyle bir kod olsun
public class MyClass {
protected String anotherMethodInClass() {
...
}
}
Şöyle yaaprız// would throw a NullPointerException
when(myClass.anotherMethodInClass()).thenReturn("test");
Örnek Elimizde şöyle bir sınıf olsun
public class KeyService {
public String getKey() {
return "fakeKey";
}
}
Bu sınıfı mock'layalımKeyService keyServiceMock() {
return Mockito.mock(KeyService.class);
}
Şöyle yaparız.KeyService keyService = keyServiceMock ()
Mockito.when(keyService.getKey()).thenReturn("key1", "key2");
thenReturn metodu
- thenReturn() metodları zincir gibi bağlanabilir. Şu metod bu parametre ile çağırınlınca önce ilk thenReturn(), sonra ikinci thenReturn() sonucu dönülür. Eğer daha fazla çağırırsak en son thenReturn() dönülür. Açıklaması şöyle
Here you can return different values for more than one call just adding them as more parameters: thenReturn(value1, value2, value-n, …).- Eğer daha önce when() + thenReturn() ile dönecek nesneyi tanımladıysak anca bir başka yerde dönecek nesneyi değiştirmek istiyorsak when() metodunu aynı key değeri ile çağırıp thenReturn() metoduna yeni parametreyi veririz. Bu aynı bir map'in içindeki key değerini farklı bir value ile değiştirmek gibidir.
Örnek
Şöyle yaparız.
@Test
public void ViewUserData(){
FindIterable iterable = mock(FindIterable.class);
MongoCursor cursor = mock(MongoCursor.class);
Document doc1=new Document("1","bharathi");
Document doc2=new Document("2","madhavi");
when(iterable.iterator()).thenReturn(cursor);
when(cursor.hasNext())
.thenReturn(true)
.thenReturn(true)
.thenReturn(false);
when(cursor.next())
.thenReturn(doc1)
.thenReturn(doc2);
Mockito.when(collection.find(Mockito.any(BasicDBObject.class))).thenReturn(iterable);
mdmdaoimpl.viewUserData("1","bharathi");
verify(collection,times(1)).find(Mockito.any(BasicDBObject.class));
}
Hiç yorum yok:
Yorum Gönder