有没有办法让我的模拟模仿一个类型?我正在尝试做这样的事情:
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/