返回中具有委托的Moq始终返回null

时间:2016-06-29 15:44:30

标签: c# unit-testing delegates moq

我正在尝试为一个类创建一个Mock对象,这样Mock对象可以访问所有与原始类相同的方法,除了我想要以不同方式执行的一个方法。但是,当我在调试模式下查看时,我的Mock对象有 no 方法,并且我想要改变的所有调用(出于测试目的)都返回null。这就是我现在这样做的方式:

var originalClass = ContainingClass.OtherContainingClass.ClassIWantToMock;
var originalClassMock = new Mock<IClassToMock> {CallBase = true};

originalClassMock.Setup(c => c.MethodToMock(It.IsAny<paramType>()))
    .Returns<TReturn>(originalClass.MethodToMock);

无论我模拟我想要更改的方法,以及模拟类中的每个方法,我都得到相同的结果。我怀疑这是因为IClassToMock是一个接口,即使我从一个实现该接口的对象提供方法。这可能就是为什么CallBase没有什么区别 - 无论是否设置了CallBase,我都得到相同的结果。有没有办法通过设置从实现该接口的类运行委托的方法来模拟接口?

谢谢!

0 个答案:

没有答案