時間に依存するコードをテストするためにJava System.currentTimeMillisをオーバーライドする
System.currentTimeMillisホストマシンのシステムクロックを手動で変更する以外に、コードまたはJVM引数を使用して、で表示される現在の時刻を上書きする方法はありますか? 少し背景: 現在の日付(つまり、月の1日、年の1日など)を中心にロジックの多くを実行する多くの会計ジョブを実行するシステムがあります。 残念ながら、従来のコードの多くは、new Date()またはなどの関数を呼び出しますがCalendar.getInstance()、どちらも最終的にはに呼び出されSystem.currentTimeMillisます。 テストの目的で、今のところ、システムクロックを手動で更新して、テストが実行されているとコードが判断する日時を操作する必要があります。 だから私の質問は: によって返されるものをオーバーライドする方法はありますかSystem.currentTimeMillis?たとえば、そのメソッドから戻る前に、JVMにオフセットを自動的に加算または減算するように指示するには、 前もって感謝します!