你可能沒有。或者你需要幸運。
我想說的是:PowerMock(ITO)的性質是變化你的字節碼。換句話說:你的單元測試是(可能)而不是運行javac /你的IDE編譯的類文件。爲了實現其黑魔法,PowerMock將在加載時更改您的課程文件內容。
不幸的是,代碼覆蓋工具以相同的方式工作 - 他們需要工具類文件的內容才能完成它們的部分。
因此,當使用PowerMock導致「零覆蓋」時,不應該感到驚訝。有時它起作用,有時它不起作用。還有一個非常不好的部分:你可能需要很長的時間才能找到解決該問題的解決方案。對此有各種各樣的錯誤,例如one;正如所說:有時它起作用,有時它不起作用。很大程度上取決於你在做什麼;以及您正在使用的框架。
所以,基本的非答案 - 看看你需要使用PowerMock。你看,很可能你只是寫了無法測試/難以測試的生產代碼。現在你認爲你需要PowerMock大錘來修復你的代碼中的設計問題。相反:學習如何創建可測試代碼,例如通過觀看這些videos。然後重新構建您的生產代碼,並擺脫PowerMock。我幾個月前就是這麼做的;而且我從來沒有後悔過這麼做。現在我依靠EasyMock/Mokito ...和代碼覆蓋只是爲我工作。