Как проверить, что был сделан вызов универсальному методу с использованием унаследованного типа, когда я могу проверять только базовый тип.
У меня есть интерфейс с универсальным методом:
public interface IEvent
{
void Subscribe<T>() where T : BaseEvent;
}
В моем коде есть несколько производных событий, которые наследуются от BaseEvent.Вот один из них:
public class DerivedEvent: BaseEvent{}
Я вызываю метод подписки следующим образом:
myEvent.Subscribe<DerivedEvent>()
В модульном тесте я хочу убедиться, что вызов сделан с любым классом, производным от базового события.Это пройдет, но он использует производный класс.
v.Subscribe<DerivedEvent>(), Times.Exactly(1));
Это вызывается ноль раз:
v.Subscribe<BaseEvent>(), Times.Exactly(1));
Как я могу убедиться, что универсальный метод Subscribe был вызван с любым BaseEvent?