有没有办法让我的模拟模仿一个类型?我正在尝试做这样的事情:

var myMock = new Mock<IMyType>();
myMock.Setup(x => x.GetType()).Returns(typeof(MyTypeImpl));

但是,GetType是不可覆盖的。

有什么建议么?

最佳答案

除了可以使用is运算符检查类型之外,您可以(不应)实现自己的可重写接口(interface)方法,该方法执行类似的功能,并在通常的一堆类上使用is运算符(或typeof()/GetType())实现它。

就是说,如果您使用的is运算符需要这种可测试的方式,则很有可能您基本上就在沿线某处击败了多态性和接口(interface)的目的。我会考虑是否可以摆脱它。

关于c# - 在Moq中模拟is运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/969702/

10-10 09:53