我有一個靜態的無效方法從一個不同的類,作爲某種記錄器沿着我的代碼調用。爲了自動測試我的代碼的不同用例,我正在考慮檢查由這種方法創建的系統的日誌。嘲笑靜態void方法並改變它的行爲
我認爲是模擬該類並覆蓋該方法的行爲,以便輸出到System.err
。另外,如here所述重定向System.err
,以便我可以輕鬆驗證代碼的正確功能。
我不知道如何重寫該方法的標準行爲,以便它可以執行某些操作(打印到stderr)而不是通常的操作(通過不嘲笑它)或者什麼也不做(我使用的是when(...).thenReturn(...)
)
除非你真的想測試,否則不要測試日誌輸出。爲什麼不測試方法的*行爲*? –
該方法的行爲非常難以測試:它連接到服務器,發送消息並將其顯示在GUI上,但我不想測試GUI。 – user2891462
然後只測試非GUI行爲。如有必要,請重構您的代碼以使其可測試。聽起來你的方法反正太過分了。 –