私は新しいプロジェクトを開始し、TDDを使用して設計を推進することに非常に一生懸命取り組んでいます。私は何年もプッシュしてきましたが、ついにこのプロジェクトに余分な時間を費やして、それを適切に行う方法を学びながら、それを使用することを承認しました。
これは、既存のシステムに結び付ける新しいモジュールです。現在、すべてのデータアクセスはWebサービスを介して行われます。Webサービスは、ほとんどの場合、データベースストアドプロシージャの単なる薄いラッパーです。
1つの要件は、特定のストアについて、このアプリケーションに対して有効と見なされるすべての発注書を返すことです。出荷日が店舗のオープン日から特定の範囲内にある場合、POは有効であると見なされます(これは新しい店舗の場合です)。
上記の制約が与えられた場合、このストアに適用できるダースを取得するためだけに100万のPOを戻すつもりはないので、このロジックをアプリケーションコードに入れることはできません。
日付範囲をGetValidPOsプロシージャに渡し、それらの値を使用して有効なPOを返すことができると考えていました。しかし、有効なPOと見なされるものに別の要件を追加するとどうなりますか?
そして、どのようにこれをテストし、機能し続けることを確認しますか?ORMを使用していないため、起こりそうにありません。また、テストでDBを呼び出すことはできません。
立ち往生しています。
私の考えでは、有効なデータを返すモック、不良データを返すモック、不良データが発生した場合にローカルリポジトリに例外をスローさせ、無効なデータがGetValidPOs procによって返された場合に例外がスローされることをテストしますテストで使用されるモック)。
これは理にかなっていますか?または、より良い方法はありますか?
更新: EFを使用できるようです。ストアドプロシージャと複数のデータベースにデータを散在させることの困難さに依存しながら、使用方法を把握し、テスト可能にする必要があります。