Я играю с простым обработчиком, который реализует IWantToRunWhenBusStartsAndStops
и в начале, это расписанием задачу следующим образом:Как проверить обработчик NServiceBus, который использует расписание
public void Start()
{
_schedule.Every(TimeSpan.FromSeconds(5), Moo);
}
_schedule впрыскивается через конструктор. Тест, который я пытаюсь написать, - это удостовериться, что задача запланирована при запуске обработчика. Но я не могу найти способ издеваться над расписанием, поскольку у него нет конструктора no-arg и он не реализует интерфейс. Я попытался создать фактический экземпляр этого с издеваемым IBuilder
, но не могу понять, какие ожидания установить на IBuilder
. Кроме того, я посмотрел на источник, чтобы узнать, как они тестировали Schedule
, но похоже, что мы находимся на более ранней версии (v5.0.0 через nuget), потому что у нас нет DefaultScheduler
, который, по-видимому, используется ими в их нынешнем тесты.
С моей точки зрения, вы пытаетесь протестировать инфраструктуру, которая сама по себе является анти-шаблоном. Кроме того, инъекция статического NServiceBus.Schedule является излишним. Я не могу себе представить, почему кто-то это сделает. –
@AlexeyZimarev I упрощен. Это делает больше, чем это, но одна из целей теста - проверить, что, да, мы запланировали метод, который будет выполняться каждые пять секунд. Кроме того, расписание больше не статично в версии 5. Он вводится через контейнер. (http://docs.particular.net/nservicebus/scheduling/) –