在Spring Data和Spring Data REST項目中測試時間依賴業務邏輯的最佳實踐是什麼? 如何在一種測試方法中設置不同的「系統」時間?如何測試彈簧數據和彈簧數據休息項目中的時間依賴業務邏輯?
例如 - 我們有兩種不同的算法來解決同一個任務 - 一個算法直到11-00,另一個算法 - 在11-00之後。
,或者我們必須只在星期一被執行的任務......
在Spring Data和Spring Data REST項目中測試時間依賴業務邏輯的最佳實踐是什麼? 如何在一種測試方法中設置不同的「系統」時間?如何測試彈簧數據和彈簧數據休息項目中的時間依賴業務邏輯?
例如 - 我們有兩種不同的算法來解決同一個任務 - 一個算法直到11-00,另一個算法 - 在11-00之後。
,或者我們必須只在星期一被執行的任務......
如果一個方法取決於當前日期或時間,添加當前時間爲參數:
public void doSomething(LocalDateTime now) {
// does something time-dependent
}
的真正的代碼調用doSomething(LocalDateTime.now())
這種方法。 測試調用此方法用「測試日期」
doSomething(LocalDateTime.of(2017, 3, 5, 13, 37)); // Sunday
doSomething(LocalDateTime.of(2017, 3, 6, 13, 37)); // Monday
[時間依賴的單元測試](http://stackoverflow.com/questions/5622194/time-dependent-unit-tests) –