我是生成类 C
对象的库的客户,它实现了两个接口(interface) IA
和 IB
,代表永久连接我需要存储。
我需要存储调用之间返回的对象 C
。
class Example
{
C _obj;
}
我想模拟C
使用的接口(interface)函数进行测试,但是因为'C'继承了多个接口(interface)我没有接口(interface)IC
,所以我不能写:
class Example
{
Example(IC cInstance) { _obj = cInstance; }
IC _obj;
}
因此我无法轻松创建一个模拟对象来实现接口(interface) IA
和 IB
我可以用来测试我的类 Example
有效。
如何在不使用转换或其他丑陋的东西的情况下做到这一点?
最佳答案
你可以使用泛型来做到这一点:
class Example<T> where T : IA, IB
{
public Example(T instance)
{
this.obj = instance;
}
private T obj;
}
您可以使用 C
或带有 Example
的模型,只要该类实现了这两个接口(interface):
class CMock : IA, IB
{
// ...
}
var myMockObj = new CMock();
var example = new Example<CMock>(myMockObj);
关于c# - 如何为继承多个接口(interface)的对象创建模拟接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26383980/