我最近有一個getter函數,它只是使用特定的時間格式返回當前時間。由於它使用某些系統API返回當前時間,所以我想不出爲此編寫單元測試的方法。如何爲'getCurrentTime()'函數編寫單元測試?
任何人都可以對此提出建議嗎?
我最近有一個getter函數,它只是使用特定的時間格式返回當前時間。由於它使用某些系統API返回當前時間,所以我想不出爲此編寫單元測試的方法。如何爲'getCurrentTime()'函數編寫單元測試?
任何人都可以對此提出建議嗎?
您需要將系統API從您的系統中分離出來。
已知的方式來做到這一點是使用依賴注入。你在時間格式化程序中注入一個類來檢索當前時間。
在單元測試中插入一個假CURRENTTIME API將返回預定的值,以便您可以檢查您TimeFormatter的結果。 當您在生產中運行時,您使用System API。
理想的解決方案是不直接使用系統的時間,而是有你的所有代碼各地使用系統的包裝(假設的Java,說),你可以模擬出。這可能不可行,或者容易。
一個更簡單的方法是將嚴格創建第二個方法做了格式化,它以時間爲參數。然後,您可以輕鬆徹底地測試格式。
然後在你原來的方法調用新的方法,通過在系統中的時間(例如System.currentTimeMillis()
)也懶得寫測試它。沒有什麼可以做錯的,你可以做任何事情,在那個時候,所以沒有什麼可以測試的。
你想要測試什麼?你想測試它返回正確的時間嗎?或者時間以正確的格式返回? –
嗨丹尼爾,是的,我想測試它是否在正確的時間和正確的格式。 – zyzyis