![](/img/trans.png)
[英]Suppressing a void static method and a static method in same class with PowerMock
[英]PowerMock throw initialzationError when a class's static method return same a same class's object
引發了initializationError
。 我正在使用powermock 1.6.4和javassist-3.20.0。 看來我不能在同一類上(同時)模擬和模擬靜態。
interface B
{
public static B getA()
{
return new B()
{
};
}
}
a test code is:
@PrepareForTest({B.class})
@Test
public void testB()
{
B a = mock( B.class );
mockStatic( B.class );
when( B.getA() ).thenReturn( a );
}
您必須准備B
模擬(例如,使用PowerMockRunner
),否則測試將在此行引發ClassNotPreparedException
:
mockStatic( B.class );
該測試將通過(盡管由於沒有斷言,所以說此測試不會引發異常可能更准確;):
@RunWith(PowerMockRunner.class)
@PrepareForTest({B.class})
public class BTest {
@Test
public void testB() {
B a = Mockito.mock(B.class);
PowerMockito.mockStatic(B.class);
Mockito.when(B.getA()).thenReturn(a);
}
}
我已經使用以下方法驗證了這一點:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.