在模拟同一类中的其他内部方法时测试方法

时间:2018-11-13 06:54:18

标签: c# unit-testing mocking nunit

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

0 个答案:

没有答案
相关问题