抛出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 );
}
答案 0 :(得分:0)
您必须准备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);
}
}
我已经使用以下方式验证了这一点: