Как сделать приложение с планировщиком (Quartz) тестируемым вручную? - PullRequest
2 голосов
/ 07 июня 2011

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

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

Итак, чтобы быть более конкретным в этом общем вопросе дизайна:

  1. Возможно ли подделать текущую дату для Кварца?
  2. Если нет, то как вы разрабатываете эту «волшебную кнопку времени для тестировщиков», которая переносит приложение в будущее? Особенно в отношении запланированных задач ...

Просто чтобы прояснить: у нас нет проблем с нашими автоматическими тестами (нет необходимости в планировщике) и мы не пытаемся тестировать сам планировщик.

Ответы [ 2 ]

1 голос
/ 31 октября 2011

Я просто выделю решение, которое мы в конечном итоге внедрили для других людей, которые могут быть заинтересованы.В конце концов, мы вообще не использовали Quartz в среде разработки.Планировщик работает только в производственной конфигурации (где, очевидно, невозможно сдвинуть время).Затем у нас есть специальный фрагмент кода, который запускает ежедневную обработку для каждого дня при смене времени (что присутствует только в среде разработки / тестирования).

Суть для нас: не пытайтесь объединять планировщик иперенося время в будущее - создайте отдельную конфигурацию с одним XOR другим со специальной логикой для замены планировщика в конфигурации без планировщика.

0 голосов
/ 07 июня 2011

Ваша единственная реальная возможность - увеличить время системы перед запуском планировщика.

...