質問

ASP.NET MVCとTDDを使い始めたばかりです。ユニットテスト中に、DBなどの他のシステムではなく、コードのテストに集中する必要があることを読みました。ただし、重要な機能がDBに常駐している場合はどうなりますか?

プロジェクトとパターンを設定する方法の最初のガイドとして、MVC Storefrontシリーズを使用しました。全文検索が不可欠なので、これをリポジトリ内の関数として設定しました

IQueryable<HealthOrganization> SearchOrganizations(string phrase);

現在、この検索のロジックには、データベース内の全文を含むテーブル値関数およびその他の関数が必要です。これらの関数のロジックは、fakerepositoryで正確に取得することは不可能です。これを単体テストし、検索でTDDを実行するための最良の戦略に関する推奨事項は何ですか?

役に立ちましたか?

解決

これは単体テストではなく、統合テストです。したがって、TDDのように実装することはほとんどできません。

あなたのコードはデータベースを呼び出すこと以外はほとんど何もしないと思います。したがって、多くをテストする必要はありません。最低レベルでデータベース呼び出しをモックできる場合、呼び出しが発生するかどうかをテストできます。これが非常に複雑になる場合は、単体テストを作成しない方が良いでしょう。維持するのは難しいだけです。

統合テストを作成するには、実際のデータベースが必要です。

他のヒント

既知のアイテムのセットを含むテストデータベースを作成し、検索コードが期待する結果を返すことを確認できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top