Переопределить Систему Java.currentTimeMillis для тестирования чувствительного ко времени кода



есть ли способ, либо в коде, либо с аргументами JVM, переопределить текущее время, как представлено через System.currentTimeMillis, кроме ручного изменения системных часов на главной машине?



немного истории:



у нас есть система, которая запускает ряд бухгалтерских заданий, которые вращают большую часть своей логики вокруг текущей даты (т. е. 1-го числа месяца, 1-го года и т. д.)



к сожалению, многие устаревшие коды вызывают такие функции, как new Date() или Calendar.getInstance(), оба из которых в конечном итоге призыв к System.currentTimeMillis.



для целей тестирования, прямо сейчас, мы застряли с ручным обновлением системных часов, чтобы манипулировать какое время и дату код думает, что тест выполняется.



Итак, мой вопрос:



есть ли способ переопределить то, что возвращается System.currentTimeMillis? Например, чтобы сказать JVM автоматически добавлять или вычитать некоторое смещение перед возвращением из этого метода?



спасибо вперед!

542   0  

Comments

    Ничего не найдено.