我需要能够从MyBussniessLogicRepo测试称为“ MyTestMethod”的方法实现,而与此同时,我想模拟在“ 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方法的实现更改为虚拟时,我才不想使用虚拟,因为它具有负面影响,同时,还有其他方法可以解决此问题吗?>