Совершенно простая ситуация, но я не могу заставить ее работать.Я сталкиваюсь с проблемой использования Moq для макетирования универсального метода (в данном случае на интерфейсе Ninject Kernel):
T Get<T>();
Я установил свой фиктивный объект:
Mock<IKernel> mockKernel = new Mock<IKernel>();
mockKernel.Setup(x => x.Get<IGetUserQuery>()).Returns(new GetUserQuery());
Во время выполнения я получаю следующее исключение:
Expression references a method that does not belong to the mocked object: x => x.Get<IGetUserQuery>(new[] { })
Есть идеи, почему он это выбрасывает?Я без проблем издевался над дженериками в Moq ... Есть ли случаи, когда дженерики не поддерживаются?Это похоже на простой случай.Единственная проблема заключается в том, что IGetUserQuery в свою очередь наследует от обобщенного типа:
IGetUserQuery : ICommand<UserQueryInput, UserQueryOutput>
Я не вижу в этом проблемы, поскольку универсальные типы для этой реализации ICommand статически определяются IGetUserQuery, поэтому я сомневаюсьЭто сбивает с толку Moq.
Заранее спасибо