2012-09-10 14 views
5

.net 4.0フレームワークで動作するいくつかのレガシーコードのテストカバレッジを向上させるために、新しいFakes frameworkを使用しています。残念ながら、私たちは.net 4.5にアップグレードすることはできないようです。私がFakeフレームワークを.net 4.0(およびVS2012)で使用することができず、今サポートされていないMolesフレームワークを代わりに使用する必要があると言っても間違いないでしょうか?Microsoft Fakes and .Net 4.0

答えて

4

私は一般的なうそつきのファンではありませんが、私は彼らがレガシーコードの周りでテストを受ける際に役立つことを理解しています。あなたが考えることができる他のツールは以下のとおりです。しかし、真剣に、これらのタイプのフレームワークは嫌いです。実践する正しい方法は、テスト可能でリファクタリングするレガシーコードであるコードを書くことです(これは必ずしも容易ではないと私は理解しています)。ここでhttp://blog.pluralsight.com/2012/05/22/solid-code-for-solid-reasons/

  • は物事のカップルにしている:私はモルが、ここで説明したように、それは良いコードを書くためにあなたを強制することですユニットテストの主な利点の1、を取り除くと思います検討してください:

    • Moles(MS偽物フレームワークにPredecssor)
    • JustMock(TypeMockよりも安価、まだ高価な)
    • TypeMock(Rediculously高価!)

    それが含まれてわからない、またJustMockの自由、ライトバージョンがあります。

+0

ありがとうございます。これらのツールは最後の手段であり、ゼロから書かれたコードは、テストを念頭に置いて設計され、依存関係は適切に管理されています。しかし、私たちがコードベース全体をリファクタリングすることは嫌なことではないので、これらのタイプの分離フレームワークを見ているのはこのためです。 – gmancoll

0

これはあなたが尋ねたものではありませんが、非マイクロソフトのモッキングフレームワークを検討/評価したことは分かりますか?

Rhino.Mocksは非常に人気があり、堅牢で、FakeItEasygrowing in adoptionです。ドキュメントは豊富ではありませんが、非常に直感的で使いやすいです。

+0

私たちがレガシーコードを扱っているので、私たちの依存関係のほとんどはモックをオプションとして(モックを使用しているところで)抽象化されていないため、Moles/Fakesの迂回機能が必要です。 – gmancoll

0

私は偽のテスト3.5アセンブリですが、偽のテストは4.5のためにコンパイルされています。 3.5用にコンパイルしようとはしていませんが、デプロイメントマシン上で実行することは意図されていません。

0

Microsoft Fakesフレームワークは、Visual Studio 2012自体と同じ.NETバージョンをサポートしています。これには、バージョン4.5,4.0,3.5,3.0および2.0が含まれます。

2

Microsoft Fakesを使用するにはVisual Studio 2012 UltimateまたはPremium Update 2を使用し、以前のバージョンの.NET Frameworkは単体テストをターゲットにする必要があります。

関連する問題