我是mockito + powermock的新手。我试图模拟一个拥有私有静态内部类的类。我面临ExceptionInInitializerError。有人可以帮助我正确地初始化课程。如何使用Powermock模拟私人静态内部类
错误:
java.lang.ExceptionInInitializerError
at sun.reflect.GeneratedSerializationConstructorAccessor9.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
....................
....................
Caused by: java.lang.NullPointerException
at com.ibm.retail.xpd.pos.messaging.topics.TopicComponentHelper.<init>(TopicComponentHelper.java:10)
at com.ibm.retail.xpd.pos.messaging.topics.NodePath.<init>(NodePath.java:11)
at com.ibm.retail.xpd.pos.messaging.service.RetailPlatformService.<init>(RetailPlatformService.java:69)
at com.tgcs.scrt.gui.components.PageManager$PageControlService.<init>(PageManager.java:216)
at com.tgcs.scrt.gui.components.PageManager.<clinit>(PageManager.java:242)
... 69 more
类的样子:
public class PageManager{
.........
.........
private static class PageControlService extends PlateFormService{
.........
}
}
嘲讽类测试用例:
PowerMockito.mockStatic(PageManager.class);
+1对'真的很累......'。我们大多数人都知道真正的公司如何处理单元测试,以及我们如何用无法重构的代码创建单元测试,因此看到所有这些'这是一个可怕的想法','你没有得到单元测试的本质'答案是完全可怕和无聊的。 –
我完全不同意你。你可以将你的调用封装在一个你控制的类中的模拟静态方法,然后你可以嘲笑这个类。你不应该嘲笑你通常不拥有的类型。我正在删除我的答案,因为这实际上应该是一个评论。但我确实认为有人试图用错误的工具来解决错误的架构问题 –