В настоящее время есть следующий код, который я пытаюсь выполнить модульное тестирование
public class EventReceived: INotification{
public SpecificItems specificItems {get;};
public EventReceived(GenericItem items){
foreach(var genericItem in items){
specificItems.Add(new SpecificItem(genericItem));
}
}
}
public class EventReceivedHandler: INotificationHandler<EventReceived>{
....
public async Task Handle(EventReceived evt){
do some stuff...
}
}
Я пытаюсь протестировать метод handle и мне необходимо смоделировать параметр Event Received evt.Однако это конкретный класс, и мне нужно избегать использования логики конструктора, потому что это довольно сложно.Ниже будет запущен конструктор.
_mockEvent = new Mock<EventReceived>
Я попытался выполнить рефакторинг ниже, чтобы я мог использовать Moq и интерфейс вместо того, чтобы избегать логики конструктора. Теперь модульные тесты работают, однако теперь обработчик событий не запускает событие.
public class EventReceived: IEventReceived{
public EventReceived(...){
do some stuff...
}
}
public interface IEventReceived{}
public class EventReceivedHandler: INotificationHandler<IEventReceived>{
....
public async Task Handle(IEventReceived evt){
do some stuff...
}
}
_mockEvent = new Mock<IEventReceived>
Каков рекомендуемый способ проверки этих обработчиков событий?Есть ли какое-то простое решение, которое мне не хватает?Я новичок в Mediatr.