Я пытаюсь проверить dll Quartz.net с образцом кода, создав задания. Но я хочу изменить системное время и проверить некоторые случаи, такие как: Я пытаюсь установить этот SystemTime.UtcNow =() => новый DateTime (2013,11,23,58,00); в моем тестовом консольном приложении перед созданием, и добавил задание на отметку .WithCronSchedule («0 59 23? * *»), но его не тикают ... не уверены, вступило ли в систему SystemTime.Quartz.net + тестирование с помощью SystemTime.UtcNow
пример кода ниже:
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sched = sf.GetScheduler();
SystemTime.UtcNow =() => new DateTime(2013, 12, 04, 23, 58, 00);
SystemTime.Now =() => new DateTime(2013, 12, 04, 23, 58, 00);
////TEST
IJobDetail job = JobBuilder.Create<SimpleJob>()
.WithIdentity("job1", "group1")
.Build();
ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithCronSchedule("0 59 23 ? * *")
.Build();
Да, я попытался установить свой системный режим так же, как я установил его для SystemTime.UtcNow перед выполнением кода. Тем не менее это то же самое, но не срабатывание. – dav10
любая подсказка об этом? – dav10
SystemTime всегда будет вызывать фиксированный делегат, который вы предоставляете. Время не изменится, и работа не будет запущена, так как Quartz думает, что это 23:58 все время. Вероятно, вам стоит пересмотреть стратегию тестирования на тестирование с помощью триггеров напрямую и проверить методы GetFireTimeAfter/GetNextFireTimeUtc. –