我目前僅限於使用JRE 1.4(java運行時環境),並且我有一個具有一些當前時間計算的類。我試圖單元測試這個類,但它似乎很難,因爲我遇到的所有嘲笑工具都需要JRE1.4不支持的註釋。使用JRE 1.4嘲笑當前時間
我曾嘗試使用Jock 1.4友好版本的mockito,但不允許我模擬出靜態類。 Jmockit有一個超級簡單的解決方案,它提供下載,但似乎沒有成爲Jmockit的JRE1.4友好版本
有兩種方法我可以解決這個如果我使用JRE1.5以上已經得到了(模擬取出調用當前時間的方法或只是嘲笑當前的系統時間),但遺憾的是我不是。
唯一的解決方案是隻將當前系統時間傳遞給+/-日/月/年的方法。
然而,如果可能的話,我會在JRE 1.4環境下使用模擬方式。
謝謝
嗯,我忘了提及,我只是單元測試的類,而不是改變裏面的代碼。我之前嘗試做的事情是子類調用當前時間的方法,並在需要時插入該方法,但仍調用原始方法。 – yoshi594 2011-03-10 06:57:21
我明白了。如果您不能更改代碼,請使用@UWe的解決方案,試試easymock。另一方面,混合模擬框架並不明智(其中一個原因是它們可能使用不同的JUnitRunner,這會使您的測試代碼難以閱讀和維護),所以如果您決定並使用easymock,則可能需要將您的舊的測試用例。 – Zsolt 2011-03-10 09:16:49
是的,我會嘗試使用簡單的模擬。將讓你知道我是否成功=) – yoshi594 2011-03-11 01:45:38