私はASP.NET用のいくつかのモックフレームワークを見てきましたが、MicrosoftMolesに出くわしました。これはMicrosoftResearchチームの一部のようで、Moqなどの他の成熟したモックフレームワークよりもMolesを選択した人がいるかどうか疑問に思っていました。
3 に答える
私は実際に同じテスト プロジェクトでMoqとMoles を使用しています。どちらにも長所があり、私はそれぞれを適切に使用しています。一般的に、私は Moq を検証付きの標準的な AAA テストに使用し、Moles は、拡張メソッド呼び出しなど、それ以外の場合はモックできないもののための「大砲」です。
モックのセットアップはテストごとに大きく異なる可能性がありますが、各テストは可能な限りシンプルで合理的なものになるため、私はこの配置が気に入っています。
Moles は、Pex のホワイト ボックス分析と効率的に連携するように設計されています。他のすべてのモック フレームワークでは、通常、多くのオーバーヘッドが発生します。
Moles は、.NET メソッドをデリゲートに置き換えるという単純な価値命題を提供します。Moles は設計上、他のフレームワークのように「検証」を表現する API を提供していません。この決定があなたに合っているかどうかを決めるのは本当にあなた次第です.
ハードコーディングされた静的メソッドまたは内部コンストラクターを持つシールされた型に依存する (レガシー) コードを処理する必要がある場合、Moles はこれらのケースの処理に役立ちます。
インターフェイスと適切にコンポーネント化されたコードがある場合、Moles はプロファイラーで使用できるスリムなスタブ、つまりインターフェイスの実装も生成します。
Moles は、Moq および/または RhinoMocks のスイート スポットの外に一連の機能を提供するという点で、TypeMock と比較/対比されることがよくあります。
選択する際に自問しなければならない主な質問は、テストを比較的ローテクに保ちたいのか、それともより高度な技術的トリックに関与したいのかということです. これは主にあなたがしていることによって決定されます.MVCではなくASP.NETにタグを付けたので、実際にあなたに関連している可能性があります.
概要については、この Dimecasts.net ビデオをご覧ください。