3
A
回答
1
不知道你正在尋找什麼「方式」。許多人同時使用Mockito和Powermock,我還沒有聽到任何有關不兼容或衝突的恐怖故事。在需要模擬靜態方法的情況下使用Powermock,你應該沒問題。
或者重構爲不以需要嘲笑的方式使用靜態方法。
1
不,我認爲沒有任何辦法與我的PowerMock做到這一點。
但是你可以通過引入adapter來打破對這種靜態方法的依賴。
5
可能的解決方法是在我認爲的實際實例中封裝靜態方法。或靜態方法背後的真實實例。
雖然這意味着您將不得不修改您的生產代碼。老實說,如果你現在問自己這個問題,你在開發過程中太遲地測試你的代碼。 (現在傳播;))如果您正在練習TDD,那麼您應該早早就注意到了這個問題,並且早期調整了您的設計,並使用經典測試軟件進行了全面測試。
我個人在練習TDD時使用「疼痛指標」來看我的設計是否正常。當然,一切都取決於上下文,但通常這是良好設計的一個很好的指標(至少對於我和其他人來說)。
所以我的建議擺脫這些靜態方法或修改您的設計不依賴於靜態方法嘲諷。
乾杯
相關問題
- 1. 使用mockito模擬基類中的方法或模擬靜態方法
- 2. PowerMock Mockito:如何模擬所有靜態方法?
- 3. 使用Mockito來模擬java.nio.file.Files靜態方法
- 4. 模擬對象調用最終類與Mockito靜態方法
- 5. 如何在使用Power mockito的公共類中模擬靜態方法?
- 6. 模擬靜態方法
- 7. PHPSpec:模擬靜態方法
- 8. 模擬靜態方法
- 9. 的Mockito靜態函數模擬
- 10. 你可以模擬一個使用Mockito調用靜態方法的非靜態方法嗎?
- 11. 無法用powermockito模擬靜態方法?
- 12. 如何正確使用Mockito靜態方法包裝在非靜態方法中?
- 13. Mockito:模擬方法參數
- 14. Mockito/PowerMock:如何重置SUT中的模擬靜態變量?
- 15. 調用的Mockito在模擬的方法
- 16. 如何用Mockito模擬Thread.class?
- 17. 如何使用easymock-powermock來模擬靜態方法鏈調用?
- 18. 模擬PHPUnit中的對象來模擬靜態方法調用?
- 19. 如何使用URLHelp模擬靜態類中的靜態方法? (Moq)
- 20. 模擬靜態默認接口方法
- 21. 替換非靜態方法java模擬
- 22. 如何使用powermock模擬靜態方法?
- 23. 如何使用junit和easymock來模擬靜態方法
- 24. 如何使用JMockit模擬非靜態方法1.31
- 25. 如何使用PowerMockito模擬私有靜態方法?
- 26. 如何使用UnitilsJUnit4模擬靜態方法?
- 27. 如何用easymock模擬類中的靜態方法?
- 28. Jukito/Mockito靜態方法測試
- 29. Mockito旁路靜態測試方法
- 30. PowerMock,mockito,驗證靜態方法
+1爲「擺脫這些靜態方法」。靜態方法是可測試性的噩夢;避免它們會使代碼的質量變得更加輕鬆。 –