エンティティのハードコードされたリストを含む私の偽のリポジトリでは、単純なことが始まりました。ASP.NET MVCユニットテスト - 偽のリポジトリが扱いにくくなった
私が進歩するにつれて、私の共有する偽のリポジトリは膨れ上がっています。私はこれらのリストに新しいプロパティと新しいエンティティを継続的に追加しています。これはメンテナンスが非常に難しく、テストが何をしているのかを見ることも難しいです。私はこれが "General Fixture"と呼ばれる反パターンだと信じています。
ASP.NET MVCユニットテストの研究では、コントローラに渡されるリポジトリフィクスチャを準備する2つの方法があります。
- すべてのテスト、各テスト内のリポジトリの
- モック部品
私は上記のオプション#2を探求する誘惑が、私が読んだの間で共有されているハードコードされた偽のリポジトリを作成します。リポジトリをモックするのは良い考えではなく、コレクションを操作するコントローラ(つまり、ページング/ソート/フィルタリング機能を持つ)をテストするシナリオではかなり難しいようです。
コミュニティへの私の質問...
何リポジトリ器具を製造するための方法は、初歩的な例を超えても動作しますか?
これらはすべてすばらしい答えでした。私は個人的なテストのためにリポジトリをモックアップするためにこの質問を投稿して以来、Moqを使用してきました。私はあなたが示唆したように両方の方法を使用することが有効であると信じています。また、モックで使用するためのデータを生成するルーチンを作成すると便利です。つまり、データを作成するコードを複製するのではなく、データも共有されません。 :) – Mayo