Mocking generics that implement multiple interfaces
c#, mocking, moq
Solution
You could define an interface that includes both interface A and B (in your test project, for testing purposes), then use that in your mock.
public interface ICanTestAAndB : IInterfaceA, IInterfaceB {}
var mock = new Mock<ClassA<ICanTestAAndB>>();
Problem
Here's my class implementation where the generic is implementing two interfaces... ``` public class ClassA<TGeneric> : where TGeneric: IInterfaceA, IInterfaceB ``` I want to Mock ClassA. However, I can't use ``` var mock = new Mock<Class<A<IInterfaceA>>(); ``` or ``` var mock = new Mock<Class<A<IInterfaceB>>(); ``` since the generic requires implementations of both interfaces. I know you can mock objects with multiple interfaces by using the As() method on the moq, but I don't really have an object here but a generic type. Thoughts? Thanks...