Mocking generics that implement multiple interfaces

删除回忆录丶 提交于 2019-12-01 22:47:38

问题


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...


回答1:


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>>();


来源:https://stackoverflow.com/questions/16153494/mocking-generics-that-implement-multiple-interfaces

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!