我在我的項目中有幾個靜態util方法,其中一些只是傳遞或拋出異常。有很多關於如何模擬一個返回類型不是void的靜態方法的例子。但我怎麼能嘲笑一個靜態方法返回到「doNothing()
」?如何模擬一個返回void和PowerMock的靜態方法?
非空版本使用代碼的這些行:
@PrepareForTest(StaticResource.class)
...
PowerMockito.mockStatic(StaticResource.class);
...
Mockito.when(StaticResource.getResource("string")).thenReturn("string");
但是如果應用到StaticResources
返回void
,編譯會抱怨when(T)
不適用於void ...
任何想法?
解決方法可能是讓所有靜態方法都成功返回一些Boolean
,但我不喜歡解決方法。
不幸不會當()只接受可變和StaticResource的是一種類型的工作。 ('StaticResource不能解析爲一個變量') – Pete 2012-03-06 14:43:52
哦對對不起,你是正確的我的代碼是錯誤的,我要習慣於非靜態模擬。無論如何,我更新了我的支持以反映正確的語法。 – Brice 2012-03-06 16:14:19
謝謝!因此,有沒有依賴的靜態幫助器方法是一個壞主意? 當然,我可以只注入和反對這個工作,但是覺得將沒有依賴關係的工作者放在靜態對象中來表示他們的獨立性是有意義的。 – Pete 2012-03-07 06:35:35