2012-08-27 115 views

回答

1

不知道你正在尋找什麼「方式」。許多人同時使用Mockito和Powermock,我還沒有聽到任何有關不兼容或衝突的恐怖故事。在需要模擬靜態方法的情況下使用Powermock,你應該沒問題。

或者重構爲不以需要嘲笑的方式使用靜態方法。

1

不,我認爲沒有任何辦法與我的PowerMock做到這一點。

但是你可以通過引入adapter來打破對這種靜態方法的依賴。

5

可能的解決方法是在我認爲的實際實例中封裝靜態方法。或靜態方法背後的真實實例。

雖然這意味着您將不得不修改您的生產代碼。老實說,如果你現在問自己這個問題,你在開發過程中太遲地測試你的代碼。 (現在傳播;))如果您正在練習TDD,那麼您應該早早就注意到了這個問題,並且早期調整了您的設計,並使用經典測試軟件進行了全面測試。

我個人在練習TDD時使用「疼痛指標」來看我的設計是否正常。當然,一切都取決於上下文,但通常這是良好設計的一個很好的指標(至少對於我和其他人來說)。

所以我的建議擺脫這些靜態方法或修改您的設計不依賴於靜態方法嘲諷。

乾杯

+4

+1爲「擺脫這些靜態方法」。靜態方法是可測試性的噩夢;避免它們會使代碼的質量變得更加輕鬆。 –

相關問題