Bu kolay olacak, ancak ikisi de sınıflarımda bulunan lib'larım varsa, hangisinin kullanılacağı arasındaki farkı bulamıyorum.Mockito's Matcher - Hamcrest Matcher?
cevap
hamcrest eşleştirici yöntemleri Matcher<T>
dönüp mockito örneğin Böylece dönüş T. matchers: org.hamcrest.Matcher<Integer>
bir örneğini verir org.hamcrest.Matchers.any(Integer.class)
ve org.mockito.Matchers.any(Integer.class)
Integer
bir örneğini verir.
Bu, yalnızca Matcher<?>
nesnesi imzasında beklendiği zaman Hamcrest eşleştirmelerini kullanabileceğiniz anlamına gelir - genellikle, assertThat
çağrılarında. Sahte nesnenin yöntemlerini çağırırken beklentileri veya doğrulamaları ayarlarken, Mockito eşleştirmelerini kullanırsınız. Örneğin (netlik için tam nitelikli adlarla)
: Bir mockito eşleyici gerektiren bir bağlamda hamcrest eşleyici kullanmak istiyorsanız
@Test
public void testGetDelegatedBarByIndex() {
Foo mockFoo = mock(Foo.class);
// inject our mock
objectUnderTest.setFoo(mockFoo);
Bar mockBar = mock(Bar.class);
when(mockFoo.getBarByIndex(org.mockito.Matchers.any(Integer.class))).
thenReturn(mockBar);
Bar actualBar = objectUnderTest.getDelegatedBarByIndex(1);
assertThat(actualBar, org.hamcrest.Matchers.any(Bar.class));
verify(mockFoo).getBarByIndex(org.mockito.Matchers.any(Integer.class));
}
, sen org.mockito.Matchers.argThat
eşleyici kullanabilirsiniz. Bir Hamcrest eşleştiricisini bir Mockito eşleştiricisine dönüştürür. Öyleyse, bir çift değeri bir hassasiyetle (ama çok fazla değil) eşleştirmek istediğinizi varsayalım. Bu durumda, bunu yapabilirsiniz:
when(mockFoo.getBarByDouble(argThat(is(closeTo(1.0, 0.001))))).
thenReturn(mockBar);
Sadece belirterek, bu Mockito 2, içinde ' Hamcrest 'Matcher's ile çalışan aşırı yüklü' MockitoHamcrest' taşındı. [Mockito 2'deki yenilikler] (https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2#incompatible) bunu "1.10 ile uyumsuz değişiklikler" bölümünde anlatıyor. –
- 1. Junit Matcher?
- 2. Matcher ve desen
- 3. Koleksiyonun tüm öğelerini veya yinelenen bir eşleşmeyi tek bir Matcher ile eşleştiren Matcher “Her biri için” bir Hamcrest var mı?
- 4. JUnit Matcher # opensWith'in beyanı nerede?
- 5. hamcrest eşleştirici
- 6. Java'da substring elde etmek için Pattern/Matcher group()?
- 7. Matcher appendTeplacement yöntemi, yedeğin ters eğik çizgisini yok sayar
- 8. Hamcrest için kütüphane date
- 9. junit ve hamcrest bildirimi
- 10. Java Spring: JUnit Hamcrest: Toplama Bekleniyor
- 11. Hamcrest'i, her iki öğeden oluşan bir öğenin, başka bir dizideki her öğeye "yakın" olup olmadığını kontrol etmek için nasıl kullanabilirim?
- 12. Hamcrest ile bir şey neyin boş olduğunu gösterir?
- 13. "Thread özel durum" main "java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing"
- 14. Hamcrest Fabrika ek açıklamalarını herhangi bir araç kullanıyor mu?
- 15. Adayı içe aktarmadan isinstance
- 16. Vim'deki bir glob'u nasıl yok edebilirim?
- 17. Yöntem bağımsız değişkenler için geçerli değil İstisna türü silme sorunu var mı?
- 18. kullanma YA ben EditText kutusundaki metin <code>"Monday"</code> VEYA <code>"Tuesday"</code> YA <code>"Wednesday"</code> vb olup olmadığını görmek için kontrol edecek bir yöntem ile bir EditText alanını doğrulamak çalışıyorum
- 19. Dizgedeki tüm karakter Böyle çalıştı java
- 20. tarihinde Mock - kullanarak :: testi :: Bir() Aşağıdaki <a href="http://code.google.com/p/googlemock/" rel="nofollow">Google Mock</a> beyanı kullanırken bir derleme hatası alırsınız
- 21. Google Mocks neden bu işlev çağrısını belirsiz buluyor?
- 22. iki düzenli ifadeyi birleştirin
- 23. Normal ifade online bir test çalışır fakat
- 24. Java RegEx: Sadece
- 25. Match2 select2.js v.4.0.0 + 'da nasıl kullanılır? Eğer doğru anlamak
- 26. Dize deseni üzerinde ^^ [Java]
- 27. regex tüm sözcük seçeneği
- 28. Java kullanarak SQL'de Yeniden Düzenleme
- 29. Art arda eşleşen www ve ardışık noktalarla eşleşen URL
- 30. Tarih türü
Related'i: [? mockito işi matchers yapmak nasıl] (http://stackoverflow.com/a/22822514/1426891) –