【发布时间】:2015-11-24 15:57:09
【问题描述】:
我有一个接口 IMyInterface,我正在使用 moq 在单元测试中模拟它。
Mock<IMyInterface> firstMockedObject = new Mock<IMyInterface>();
Mock<IMyInterface> secondMockedObject = new Mock<IMyInterface>();
被测单元有一个如下所示的注册方法:
public void RegisterHandler(Type type, IHandler handler)
然后是句柄方法:
public void Handle(IMyInterface objectToHandle)
我要测试的是,我可以为IMyInterface 的 2 个不同实现注册 2 个处理程序,并且 Handle 方法正确选择要使用的处理程序:
UnitUnderTest.RegisterHAndler(firstMockedObject.Object.GetType(), handler1);
UnitUnderTest.RegisterHAndler(seconMockedObject.Object.GetType(), handler2);
问题是两个模拟对象属于同一类型。有没有办法强制 Moq 生成 2 个具有相同接口的模拟作为不同类型?
【问题讨论】:
标签: c# unit-testing mocking moq