Static 静态类的Powermock给出错误:java.lang.NoClassDefFoundError:无法初始化类XXX 问题
无法初始化类Static 静态类的Powermock给出错误:java.lang.NoClassDefFoundError:无法初始化类XXX 问题,static,junit4,powermock,powermockito,Static,Junit4,Powermock,Powermockito,无法初始化类 …javax.xml.transform.FactoryFinder(在本例中) 在本文中,我们找到了解决方案,它是类SessionFactory 正在测试的类 我们想为具有静态成员的utils类编写一个测试。 我们在尝试创建类的模拟时出错,该类包含一个new语句作为静态字段的初始化 测试中的公共类{ 私有静态JavaType JavaType=新JavaType(); // ... } 测试班 @RunWith(PowerMockRunner.class) @Prepare
- …
(在本例中)javax.xml.transform.FactoryFinder
- 在本文中,我们找到了解决方案,它是类
SessionFactory
new
语句作为静态字段的初始化
测试中的公共类{
私有静态JavaType JavaType=新JavaType();
// ...
}
测试班
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassUnderTest.class)
公共类测试ForClassUnderTest{
@试验
公共无效测试用例(){
mockStatic(ClassUnderTest.class);
解决方案
解决方案是向测试类添加另一个类级注释:
@SuppressStaticInitializationFor(“com.example.package.util.ClassUnderTest”)
请注意,您必须在最后给出包路径和no.class
。这与@PrepareFor
不同
感谢这篇文章:
带解决方案的测试类
/。。。
导入org.powermock.core.classloader.annotations.PrepareForTest;
导入org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassUnderTest.class)
@SuppressStaticInitializationFor(“com.example.package.util.ClassUnderTest”)//很好!成功了。谢谢。