Mockito javadoc
, Mockito.when (Object) öğesini kullanamadığınızda nadir durumlarda Neden doReturn () doReturn()yerine kullanımın olduğunu söylüyor gibi görünüyor when().
Mockito.when (Nesne) 'nin her zaman saplama için önerildiğine dikkat edin, çünkü argüman tipi güvenli ve daha okunabilirdir (özellikle ardışık çağrıları saklarken).
DoReturn () işlevinin kullanışlı olduğu nadir durumlar şunlardır:
1. Bir casus üzerinde gerçek nesneleri casusluk yaparken ve gerçek yöntemleri çağırırken yan etkiler getirir
List list = new LinkedList(); List spy = spy(list);
// İmkansız: gerçek yönteme spy.get (0) adı verilir IndexOutOfBoundsException (liste henüz boş)
when(spy.get(0)).thenReturn("foo");
// Saplama için doReturn () yöntemini kullanmanız gerekir:
doReturn("foo").when(spy).get(0);
2. Önceki istisna saplamalarını geçersiz kılma:
when(mock.foo()).thenThrow(new RuntimeException());
// İmkansız: istisna-stubbed foo () yöntemi çağrılır, böylece RuntimeException oluşturulur. when(mock.foo()).thenReturn("bar");
// Saplama için doReturn () yöntemini kullanmanız gerekir:
doReturn("bar").when(mock).foo(); Yukarıdaki senaryolar Mockito'nun zarif sözdiziminin bir dengesini gösterir. Ancak senaryoların çok nadir olduğunu unutmayın. Casusluk sporadik olmalı ve istisna-stubbing'i geçersiz kılmak çok nadirdir. Genel olarak, stubbing'in geçersiz kılınmasının çok fazla stubbinge işaret eden potansiyel bir kod kokusu olduğunu belirtmiyoruz.
doReturn()yararlı olduğu birkaç durum vardır .