单元测试Moq在虚拟时不通过方法

时间:2011-08-12 02:29:22

标签: unit-testing mocking moq

嗨说我有一些代码:

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时没有被指定为虚拟,但是当你将其设为虚拟时,测试代码拒绝通过该方法?

1 个答案:

答案 0 :(得分:0)

您应该在调用MyMethod之前设置虚拟方法:

t.Setup(c => c.MyOtherMethod()).Return(1);