Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Static 静态类的Powermock给出错误:java.lang.NoClassDefFoundError:无法初始化类XXX 问题_Static_Junit4_Powermock_Powermockito - Fatal编程技术网

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
正在测试的类 我们想为具有静态成员的utils类编写一个测试。 我们在尝试创建类的模拟时出错,该类包含一个
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”)//很好!成功了。谢谢。