Модульное тестирование Moq не проходит через метод, когда виртуальный - PullRequest
0 голосов
/ 12 августа 2011

Привет, скажи, у меня есть какой-то код вроде:

public class Class1
    {
        public  int MyMethod()
        {
            return MyOtherMethod();
        }

        public virtual int MyOtherMethod()
        {
            return 1;
        }
    }

Хорошо, это не очень важно, но это только для простого примера.

Затем я создаю новыйtest:

[TestMethod]
        public void TestMethod1()
        {
            var t = new Mock<Class1>();

            var w = t.Object.MyMethod();
        }

Может кто-нибудь сказать, почему код запускается через вызываемый метод MyOtherMethod, когда он не обозначен как виртуальный, но когда вы делаете его виртуальным, тестовый код отказывается проходить этот метод?

1 Ответ

0 голосов
/ 12 августа 2011

Вы должны настроить виртуальный метод перед вызовом MyMethod:

t.Setup(c => c.MyOtherMethod()).Return(1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...