インターフェースではないクラスのモック化
-
02-07-2019 - |
質問
私は、providerbase クラスから継承するいくつかのプロバイダーを C# で作成しています。ほとんどのモック フレームワークではインターフェイスのモックしかできないため、プロバイダーを使用するテストを作成するのは難しいことがわかりました。
Providerbase から継承するプロバイダーへの呼び出しをモックする方法はありますか?
そうでない場合、プロバイダーのモックを実装するために使用できるパターンはありますか?
解決
モック フレームワークは、仮想メンバーがある限り、クラスに基づいてモック オブジェクトを作成できる必要があります。
こちらもご覧ください。 タイプモック
他のヒント
Rhino モックでもクラスをモックできることは知っていますが、他のほとんどのモック フレームワークもこれに問題はないはずです。
次の点にも留意してください。クラスを封印することはできません。virtual をモックするメソッドをマークする必要があり、クラスには引数のないコンストラクターが必要ですが、これは保護できますが、private は機能しません。(これを試してみただけです)
モック フレームワークは、クラスを継承してその型のオブジェクトを作成するクラスを作成するだけであることに注意してください。したがって、コンストラクターが呼び出されます。これにより、テストで予期しない動作が発生する可能性があります。
所属していません StackOverflow