1

EntityFrameworkの単体テストについてたくさん読んだことがあります。

この問題の解決策が多すぎることがわかったので、この質問を投稿します。

これが私が見つけた解決策です:

  1. TypeMockここで説明)と呼ばれる高価な商用ツールを使用します。
  2. Effortここで説明)と呼ばれるアルファオープンソースツールを使用します。
  3. リポジトリパターンRhinoモックを使用します。分離されたLINQクエリを実際のデータベース(ここで説明)に対してテストします。

ここに記載されているいくつかの方法に関するいくつかの問題:

  • ObjectContextに接続文字列を指定する必要があるという事実を回避することはできません
  • ObjectContextを偽造した場合-単体テストで機能する可能性のあるものの一部は、本番環境では機能しません(クエリ内で関数を実行するなど)

私が読んだ記事のいくつかは3-4年前のものでした。

ここにいる人はこの問題の経験があり、私が最善の解決策を探すのを手伝ってくれる人はいますか?

明確にするために、私のビジネスロジック関数は「GetUserById」のような単純な関数ではありません。

一部の機能には、他のオブジェクトと関係のあるオブジェクトへのアクセスが含まれます。(たとえば、同じ機能にユーザー+出発地+オフィスを追加できます)。

4

1 に答える 1

2

このようなことを行うには、リポジトリパターンを使用し、RhinoMOQなどのモックフレームワークを使用してビジネスロジックをテストすることをお勧めします。次に、リポジトリの統合テストを行うことをお勧めします。

まず、これは「単一責任プリンシパル」に従い、ほ​​ぼ同じオーバーヘッドなしでビジネスロジックをテストでき(ObjectContextをモックするのは面倒です)、実際のデータを使用してクエリをテストできます。十分にテストされたソリューションには、ユニットテストと統合テストの両方が含まれることを強くお勧めします。

于 2012-06-06T16:48:33.317 に答える