Тестовый метод во время насмешки над другими внутренними методами в том же классе - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужно иметь возможность протестировать реализацию метода под названием «MyTestMethod» из MyBussniessLogicRepo, в то же время я хочу смоделировать некоторые из под-методов, которые вызывались внутри «MyTestMethod», поэтому я сделал следующий код:

Mock<MyBussniessLogicRepo> _mockMyBussniessLogic = new Mock<MyBussniessLogicRepo>(db, null) { CallBase = true };
_mockMyBussniessLogic.Setup(x => x.MySubMethod1(It.IsAny<oneOfMyRequest>())).Returns(myId);
_mockMyBussniessLogic.Setup(x => x.MySubMethod2(It.IsAny<twoOfMyRequest>())).Returns(myId);

var rslt= _mockMyBussniessLogic.Object.MyTestMethod(It.IsAny<Guid?>());

Приведенный выше код работал успешно, но только когда я изменил реализацию методов MyBussniessLogicRepo как виртуальную, я не хочу использовать виртуальную, поскольку она имеет отрицательные последствия, в то же время, есть ли другой способ решения этой проблемы?

...