模拟实现多个接口的泛型

Lev*_*ron 4 c# moq mocking

这是我的类实现,其中泛型实现了两个接口......

public class ClassA<TGeneric> : where TGeneric: IInterfaceA, IInterfaceB
Run Code Online (Sandbox Code Playgroud)

我想要Mock ClassA.但是,我不能用

var mock = new Mock<Class<A<IInterfaceA>>();
Run Code Online (Sandbox Code Playgroud)

要么

var mock = new Mock<Class<A<IInterfaceB>>();
Run Code Online (Sandbox Code Playgroud)

因为泛型需要两个接口的实现.我知道你可以使用moq上的As()方法来模拟具有多个接口的对象,但我实际上并没有一个对象,而是泛型类型.

思考?

谢谢...

dri*_*iis 8

您可以定义一个包含接口A和B的接口(在测试项目中,用于测试目的),然后在模拟中使用它.

public interface ICanTestAAndB : IInterfaceA, IInterfaceB {}

var mock = new Mock<ClassA<ICanTestAAndB>>();
Run Code Online (Sandbox Code Playgroud)