Метод проверки вызывается с правильным параметром, когда 2 метода находятся в одном классе - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть метод, который вызывает метод внутри того же класса, как показано ниже:

public class ClassSample {

    public MethodA() {
        var objectA = new ObjectA();
        // do somethings with objectA
        return MethodB(objectA)
    }

    public MethodB(ObjectA objectA) {
        // do somethings
    }
}

Сверху блок кода, если я хочу проверить это после выполнения чего-либо в методе A, то MethodB с правильным параметром.

1 Ответ

0 голосов
/ 27 апреля 2018

Вы можете установить MethodB как проверяемый,

 mock.Setup(p => p.MethodB(It.Is<ObjectA>(q => q.status == true))).Verifiable();

Проверьте ниже фрагмент кода,

    public class ObjectA
    {
        public ObjectA()
        {
        }

        public bool status { get; set; }
    }

    public class ClassSample
    {

        public ObjectA MethodA()
        {
            var objectA = new ObjectA();
            // do somethings with objectA
            objectA.status = true;
            return MethodB(objectA);
        }

        public ObjectA MethodB(ObjectA objectA)
        {
            // do somethings
            return objectA;
        }
    }

    [TestMethod]
    public void TestClassSample()
    {
        var mock = new Mock<ClassSample>();
        mock.Setup(p => p.MethodB(It.Is<ObjectA>(q => q.status == true))).Verifiable();

        var result = mock.Object.MethodA();

        mock.Verify();
    }
...