2012-07-30 32 views
18

Bu konuyla ilgili bir kaç soru gördüm, fakat benim sorunumun yanıtlarından hiçbirini anlamış görünmüyorum.EasyMock kullanarak geçersiz yöntemler nasıl test edilir

Sahte bir nesnem var, test için bazı yöntemlere gönderdiğim "object1" adını verelim, testMethod() işlevini çağırmanıza izin verin. Bu yüzden, test etmek için

testMethod(object1); 

'u sonlandırıyorum. Şimdi bir yerde bu testMethod içinde, bir boşluk yöntemidir bir yöntemini

object1.toggleDisplay(); 

çağıran bir parçası olacaktır. yöntem aslında bir şey döndüren

object1.getDisplay() 

gibi olsaydı, ben genellikle Ancak

EasyMock.expect(object1.getDisplay()).andReturn(whatever); 

yapın sadece bu gerçekten çağrılmış olduğunu test etmek için bu bir boşluk yöntemdir ve ben istiyorum belli bir süre için. Bunu yapmanın en kolay yolu nedir? Beklentilerinizi kurarken

Teşekkür şeyler son birkaç yıldır değiştirmediyseniz

cevap

22

, sen expectLastCall kullanın.

object1.toggleDisplay(); 
object.expectLastCall(); 
+1

benim gerçek usulde iç object.expectLastCall() koymak zorunda beklemek mi? Ünite test sınıflarım ve gerçek program sınıflarım ayrılmış durumda ve gerçek programımın içinde birim test kodunun olmamasını tercih ediyorum. – KWJ2104

+0

Hayır, daha önce 'EasyMock.expect (object1.getDisplay())' i kullanmış olabileceğiniz birim testinizin içinde yöntem çağrısı ve 'expectLastCall(). Times (NUM_TIMES) süresine sahip olursunuz. Ve (ne olursa olsun) – DoctorRuss

+0

var mı? Belirli yöntemleri hedeflemek için bunu yapabilir miyim? Örneğin, toggleOn() ve toggleOff() – KWJ2104

10
object1.toggleDisplay(); 
EasyMock.expectLastCall().times(5); 

veya statik olarak EasyMock yöntemleri içe eğer:

import static org.easymock.EasyMock.*; 

[...] 

object1.toggleDisplay(); 
expectLastCall().times(5); 
İlgili konular