2
我有一個我想測試的錯誤條件。我想驗證的行爲是將錯誤消息寫入日誌。由於Mockito不能存儲靜態方法,所以這很困難,因爲我希望我的待測類可以直接寫入System.err.println()
或我的靜態Log.error()
方法。我不想爲模擬的「記錄器對象」注入每個可能寫入錯誤消息的對象!如何使用Mockito來驗證是否記錄了錯誤消息?
所以我想我問的是,你認爲什麼是構建我的Log類和/或測試類的最好方法,這樣我就可以將日誌記錄方法剔除或將它們替換爲嘲笑記錄員?
最好的答案可能不會使用Mockito,它可能是任何東西。我寧願不導入像PowerMock這樣的另一個庫,但如果你有一個好的答案需要類似的東西,我不會介意看到它。
對,我試圖想辦法注入日誌依賴。這種方式不是一半壞,因爲如果需要的話,它可以在命令行中指定。但正如你所說,通過反射實例化也意味着我不能注入Mockito模擬。 – 2011-05-29 14:51:04
我想如果我想在運行時注入一個模擬,我需要一個'Log.setLogger()'方法。我無法真正想到一個更好的方法來做到這一點。我必須公開該方法,因爲我的測試不會與'Log'類相同。咩。 – 2011-05-29 15:04:45