C# 如何防止使用Moq调用基类构造函数?

C# 如何防止使用Moq调用基类构造函数?,c#,unit-testing,moq,C#,Unit Testing,Moq,如何防止使用Moq调用基类构造函数 我无法用Moq模拟对象,因为正在调用基类构造函数,它需要真实的对象,所以我想阻止调用基类构造函数 var parametersMoq = new Mock<MyDerivedClass>(null, "Params", null){ CallBase = false, }; _storedProcedureAccessor._parameters = parametersMoq.Object; var参数smoq=newmock(null,“Pa

如何防止使用Moq调用基类构造函数

我无法用Moq模拟对象,因为正在调用基类构造函数,它需要真实的对象,所以我想阻止调用基类构造函数

var parametersMoq = new Mock<MyDerivedClass>(null, "Params", null){ CallBase = false, };
_storedProcedureAccessor._parameters = parametersMoq.Object;
var参数smoq=newmock(null,“Params”,null){CallBase=false,};
_storedProcedureAccessor.\u parameters=ParametersMQ.Object;

MyDerivedClass的基类构造函数引起了我的问题。

无法阻止基类构造函数被调用

如果可以编辑基类,则应使用抽象(例如接口、抽象类或委托)替换固定依赖项


如果您不能编辑基类,并且您确实需要能够用测试友好的伪代码替换依赖项来编写单元测试,那么您需要做更多的工作(例如,将有问题的基类包装在抽象中,然后使用组合而不是继承,并依赖于新的抽象).

您可以控制基类吗?基类和派生类的构造函数签名是什么?