Мне нужен совет о том, как использовать Moq в модульном тесте, чтобы убедиться, что мой тестируемый класс ведет себя так, как я хочу. То есть тестируемый класс публикует событие Event Aggregator (из Prism), и мне нужен какой-то способ утверждать, что это событие было вызвано в моем тесте.
У меня не так много ресурсов на работе, и мне трудно понять, как это настроить.
У меня есть: -
public SomeEvent : CompositePresentationEvent<SomeEvent>
{
EventPayload
}
public SomeClass
{
void Allocate(){EventAggregator.Publish<SomeEvent>}
}
public SomeService : IService
{
SomeService(){ EventAggregator.Subscribe<SomeEvent>(DoSomething)}
void DoSomething(SomeEvent evt){}
}
Я думаю, что если мой тест предназначен для SomeClass, мне нужно убедиться, что, если я позвоню SomeClass. Распределение сообщения SomeEvent публикуется. Как это сделать?
Нужно ли также проверять, что поддельный SomeService получает SomeEvent? Или это отдельный модульный тест, относящийся к модульному тесту SomeService, а не SomeClass?
В любом случае, не знаете, как все это настроить, поэтому мы будем благодарны за любые советы.