5

基本クラスのコンストラクターが Moq で呼び出されないようにするにはどうすればよいですか?

基本クラスのコンストラクターが呼び出され、実際のオブジェクトが必要なため、Moq でオブジェクトをモックできません。そのため、基本クラスのコンストラクターが呼び出されないようにしたいと考えています。

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

MyDerivedClass の基本クラス コンストラクターが問題を引き起こしています。

4

1 に答える 1

6

基本クラスのコンストラクターが呼び出されないようにする方法はありません。

基本クラスを編集できる場合は、固定された依存関係を抽象化(たとえば、インターフェース、抽象クラス、またはデリゲート)に置き換える必要があります。

基本クラスを編集できず、依存関係をテストに適した偽物に置き換えて単体テストを作成できるようにする必要がある場合は、もう少し作業を行う必要があります(たとえば、問題のある基本クラスを抽象化でラップします。次に、継承の代わりに構成を使用し、新しい抽象化に依存します)。

于 2012-05-18T17:27:05.460 に答える