2010-11-24 20 views
6

Biz Mockito ile bir eylemin davranışını doğrulamayı deneyin. Test kodu actionPerformed TYPE1 yapıcısı sağlanan nesne üzerinde birYöntem sadece çağrıyı içeren bumockito şikayet hakkında yanlış argümanlar

final Type1 mock = mock(Type1.class); 
new SomeAction<Type1>(mock).actionPerformed(null); 

verify(mock).someMethod(); 

yönteme benziyor. Yine de Mockito, beklenen yöntem çağrısı olmadığından şikayet ediyordu, bunun yerine farklı bir yöntem çağrısı gerçekleşti. Fakat Mockito tarafından basılan iki çağrının dize temsili tamamen aynı!

neler olduğunu dair bir açıklamanız?

Güncelleme: ErrorMessage Mockito

Argument(s) are different! Wanted: 
type1.someMethod(); 
-> at xxx 
Actual invocation has different arguments: 
type1.someMethod(); 
-> at xxx 
+0

Bu denedik ve kullandığınız Mockito hangi sürümü (geçişleri kontrol edin.) Çalışması gerekir bekliyoruz olarak çalıştı? 1.8 yaşındayım. Boş parametrenizin farklı bir dalın alınmasına neden olmadığından emin misiniz? – omerkudat

+0

Sürüm 1.8.5; someMethod bir oneliner, bu yüzden gerçekten farklı bir bölüm yok. –

+0

Bir SSCCE sağlayabilir misiniz lütfen? – daveb

cevap

3

gelen bu bir streç biraz, ama sizin toString uygulamaları kontrol edin. Gerçekte farklı olduklarında, beklenen ve gözlenenlerin ünite test bakış açısından aynı olduğu ortaya çıkan rahatsız edici birim test senaryolarına rastladım. Sonuçta toString'de, gerçekte orada olmadığında benzerlik olduğuna inanmamı sağlayan bir varyasyon vardı.

+0

metodu geçersiz kıldığından ve herhangi bir toString bulunmuyorsa argüman almıyor ... Sanırım. –

+0

Birim test sonucundaki toString() gösterimi, bir kez beni kandırdı. Mockito'nun şikâyet ettiği 2 nesnenin farklı olup olmadığını anlamak için, Object'te olduğu gibi toString'i tekrar geçersiz kıldım. –