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

本文关键字:调用 基类 构造函数 Moq 何防止 | 更新日期: 2023-09-27 18:34:47

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

我无法使用 Moq 模拟对象,因为正在调用基类构造函数并且它需要真实对象,因此我想停止调用基类构造函数。

var parametersMoq = new Mock<MyDerivedClass>(null, "Params", null){ CallBase = false, };
_storedProcedureAccessor._parameters = parametersMoq.Object;

MyDerivedClass 的基类构造函数给我带来了问题。

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

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

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

如果你不能编辑基类,并且你真的需要能够用测试友好的假货来替换依赖项来编写你的单元测试,你需要做更多的工作(例如,将有问题的基类包装在一个抽象中,然后使用组合而不是继承,并依赖于新的抽象(。