回答:
はい。マイクロソフトのようないくつかのフレームワークモグラ、TypeMockアイソレーター、およびJustMockは、あなたが何でも模擬できるようにすることができます。これらのモックツールは、一般に、既存のレガシーコードでそれらを使用したい開発者にとっては、よりテストしやすい設計にリファクタリングできない可能性があるため、より優れています。*
伝統的に、テスト可能なデザインは、コードベースは、したがって、のような伝統的なモックフレームワークインタフェース、抽象クラス、仮想メソッド、シールされていないクラスなどのリベラルに活用する必要があることを意味する部品番号とRhinoMocksもコードでの作業は、テスト駆動開発、依存性注入を使用して開発し、他のそのような概念。ところで、テスト可能なコードだけでなく、メンテナンス可能なコードも得られるため、依存性注入を使用することを強くお勧めします。
* 従来のテスト(およびモック)ツールで使用できるコードにテストなしでコードをゆっくりとリファクタリングする方法については、「レガシーコードを効果的に使用する」を参照してください。
部品番号のチュートリアルは TypeMockアイソレーター、RhinoMocks、およびMOQ:いくつかの特定のツールに関連して、これを論じ冒頭背景、哲学、そして論争の右側のセクションがあります。Moqを説明するために書かれているため、当然少し偏っていますが、モックフレームワークのいくつかの違いを理解しようとすると、非常に役立つことがわかりました。
C#Mocking FrameworksのこのSOスレッドに対する応答も有用であることがわかりました。ほとんどの場合、ユーザーが実際に役立つと思われる1つのモックフレームワークを参照しますが、プロキシベースのモックとプロファイラーベースのモックについて議論するHaraldVからの応答があります。
また、オンラインで比較チャートを見つけることができました。2009年からのものなので、最新かどうかはわかりません。TypeMockとコールバックに関する情報が古いことを示すコメントが少なくとも1つありますが、グラフは、現在の状態を確認するためにレッグワークを行う必要がある場合でも考慮すべき問題を提起するのに適している場合があります: RhinoMocks、Moq、NMock、とTypeMock比較チャート
Google Codeには、簡単なコード比較のための複数のモックフレームワークのテストケースを使用したプロジェクトがあります: mocking-frameworks-compare
私のチームでは、Microsoft Molesを選択しました。これは、#2、#3、および#4で大幅に勝ちますが、ほとんどの選択肢より慣用的ではなく、#1でローエンドです。