嗨说我有一些代码:
public class Class1
{
public int MyMethod()
{
return MyOtherMethod();
}
public virtual int MyOtherMethod()
{
return 1;
}
}
好的,这并没有太大的相关性,但这只是一个简单的例子。
然后我创建了一个新的测试:
[TestMethod]
public void TestMethod1()
{
var t = new Mock<Class1>();
var w = t.Object.MyMethod();
}
有人可以告诉我为什么代码在调用方法MyOtherMethod时没有被指定为虚拟,但是当你将其设为虚拟时,测试代码拒绝通过该方法?
答案 0 :(得分:0)
您应该在调用MyMethod之前设置虚拟方法:
t.Setup(c => c.MyOtherMethod()).Return(1);