我是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對'真的很累......'。我們大多數人都知道真正的公司如何處理單元測試,以及我們如何用無法重構的代碼創建單元測試,因此看到所有這些'這是一個可怕的想法','你沒有得到單元測試的本質'答案是完全可怕和無聊的。 –
我完全不同意你。你可以將你的調用封裝在一個你控制的類中的模擬靜態方法,然後你可以嘲笑這個類。你不應該嘲笑你通常不擁有的類型。我正在刪除我的答案,因爲這實際上應該是一個評論。但我確實認爲有人試圖用錯誤的工具來解決錯誤的架構問題 –