Мы создаем финансовое приложение с довольно большой запланированной обработкой. Мы хотим упростить ручное тестирование приложения, но поскольку для завершения большинства процессов требуются месяцы, нам нужно дать возможность тестировщикам перенести текущую дату вперед.
Это не проблема подделать текущую дату для всех наших бизнес-сервисов, потому что все они обращаются к дате косвенно через «TimeService». Проблема, с которой мы сталкиваемся, связана с планировщиком (Quartz). Невозможно перенести текущую дату планировщика в будущее (и в прошлое, но это не имеет особого смысла). Я понимаю, что это, вероятно, не лучшая идея связываться с текущим временем планировщика, когда он работает, но если вы могли бы запустить планировщик с интервалом времени смещения относительно текущей даты, не должно быть логической проблемы с этим - Quartz должен просто найти все пропущенные выполнения и обрабатывать их в соответствии с настроенными инструкциями пропуска зажигания.
Итак, чтобы быть более конкретным в этом общем вопросе дизайна:
- Возможно ли подделать текущую дату для Кварца?
- Если нет, то как вы разрабатываете эту «волшебную кнопку времени для тестировщиков», которая переносит приложение в будущее? Особенно в отношении запланированных задач ...
Просто чтобы прояснить: у нас нет проблем с нашими автоматическими тестами (нет необходимости в планировщике) и мы не пытаемся тестировать сам планировщик.