Bir sınıf statik yöntemlerle alay kuruyorum. Bunu @Before
ekli JUnit kurulum yönteminde yapmak zorundayım.PowerMock, statik bir yöntemle alay, THEN tüm diğer statiklerde gerçek yöntemleri çağırıyor
Amacım, gerçekte alay ettiğim yöntemler için hariç, gerçek yöntemlerini çağırmak üzere sınıfı ayarlamaktır. Temelde
:
@Before
public void setupStaticUtil() {
PowerMockito.mockStatic(StaticUtilClass.class);
when(StaticUtilClass.someStaticMethod(antString())).thenReturn(5); // mock out certain methods...
// Now have all OTHER methods call the real implmentation??? How do I do this?
}
İçine çalıştırıyorum sorun null
değeri ile sağlanan eğer StaticUtilClass
içinde yöntem public static int someStaticMethod(String s)
maalesef bir RuntimeException
atar olmasıdır.
@Before
public void setupStaticUtil() {
PowerMockito.mockStatic(StaticUtilClass.class, CALLS_REAL_METHODS); // Default to calling real static methods
// The below call to someStaticMethod() will throw a RuntimeException, as the arg is null!
// Even though I don't actually want to call the method, I just want to setup a mock result
when(StaticUtilClass.someStaticMethod(antString())).thenReturn(5);
}
Ben tüm diğer statik yöntemlere sonra gerçek yöntemleri çağırmak için varsayılan Cevap ayarlamalısınız:
Yani basitçe aşağıdaki gibi varsayılan cevap olarak gerçek yöntemleri çağırmadan bariz rota gidemez Ben alay konusu ile ilgileniyorum yönteminden sonuçları alay ediyorum.
Bu mümkün mü?
ya bir de unutmayın: tanımladığınız sadece yöntemini saplama ve değişmeden diğer bırakacaktır Stubbing kullanabilirsiniz PowerMockito yılında
PowerMockito sınıfımda stub() veya mockStaticPartial() yöntemi. 1.5 Sürümü. Benim sürüm 1.9.5 Mockito sınıfında, burada bir stub() yöntemi görüyorum: http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html#stub(T) ancak bulduğum belgeleri okudum this: http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html#when(T) notu, ne zaman(), kullanımdan kaldırılmış bir saplama (Object) ** 'nin devamıdır? Bu yöntemin artık kullanılmadığını düşünmeyin ve ne olursa olsun ihtiyacım olanı yapmayacağım. –
mockStaticPartial, EasyMock için tanımlanmıştır - Mockito için açıkça sorduğunuzu anlamadım - http://powermock.googlecode.com/svn/docs/powermock-1.5/apidocs/org/powermock/api/easymock/PowerMock. html – zibi
stub, PowerMockito'nun bir üst sınıfı olan MemberModifier'da tanımlanmıştır - işte burada! - http://powermock.googlecode.com/svn/docs/powermock-1.5/apidocs/org/powermock/api/support/membermodification/MemberModifier.html#stub%28java.lang.reflect.Method%29 – zibi