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

时间:2012-05-18 15:25:04

标签: c# unit-testing moq

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

我无法用Moq模拟一个对象,因为正在调用基类构造函数并且它需要真正的对象,所以我想停止调用基类构造函数。

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

MyDerivedClass的基类构造函数导致了我的问题。

1 个答案:

答案 0 :(得分:4)

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

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

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