質問

私は、providerbase クラスから継承するいくつかのプロバイダーを C# で作成しています。ほとんどのモック フレームワークではインターフェイスのモックしかできないため、プロバイダーを使用するテストを作成するのは難しいことがわかりました。

Providerbase から継承するプロバイダーへの呼び出しをモックする方法はありますか?

そうでない場合、プロバイダーのモックを実装するために使用できるパターンはありますか?

役に立ちましたか?

解決

モック フレームワークは、仮想メンバーがある限り、クラスに基づいてモック オブジェクトを作成できる必要があります。

こちらもご覧ください。 タイプモック

他のヒント

Rhino モックでもクラスをモックできることは知っていますが、他のほとんどのモック フレームワークもこれに問題はないはずです。
次の点にも留意してください。クラスを封印することはできません。virtual をモックするメソッドをマークする必要があり、クラスには引数のないコンストラクターが必要ですが、これは保護できますが、private は機能しません。(これを試してみただけです)

モック フレームワークは、クラスを継承してその型のオブジェクトを作成するクラスを作成するだけであることに注意してください。したがって、コンストラクターが呼び出されます。これにより、テストで予期しない動作が発生する可能性があります。

ライノモック または モク クラスとインターフェイスのテスト ダブルを作成します。ただし、型には仮想メソッドがあるか、抽象型である必要があります。の タイプモック アイソレータはこれを回避します。

モックしたいオブジェクトはおそらく抽象的であるべきだと思います(依存関係逆転の原理).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top