По сути, тестирование «обработчика команд», возвращающего void, ничем не отличается от тестирования метода, возвращающего void - возврат void является четким признаком того, что метод вызывается для его побочных эффектов, поэтому вы проверяете те.
В зависимости от характера испытуемого, возможно, имеет смысл использовать двойной тест вместо живого соавтора, чтобы определить, произошла ли правильная вещь.
var person = _enquiryFactory.Create(message.Gender, message.Salary);
var offers = getAvailableOffers();
person.AssignOffers(offers);
await _mediator.DispatchDomainEventsAsync(person);
return Unit.Value;
В этом примере следует заметить, что в вашем обработчике не только отсутствует состояние , но также отсутствует логика - любое разветвление здесь инкапсулировановнутри соавторов.
Предполагая, что части совмещаются, не так уж много может потерпеть неудачу, что является обязанностью обработчика.Поэтому я бы не стал блокировать запрос на извлечение, как этот, потому что для обработчика не было «модульного теста».
Не могли бы вы уточнить, что вы подразумеваете под: «Предполагая, что части совмещаются».I
В «строго типизированном» языке компилятор / интерпретатор сделал бы для нас много проверок.Если система типов не удовлетворена, то мы получим сообщение об ошибке перед загрузкой метода в среду выполнения.