1

関数を呼び出してデータベースにデータを保存していますStoreData。デザイナー コードでは、aSqlConnectionが開き、SqlCommands が実行され、がSqlConnection閉じます。が正常に実行されると、StoreDataデータが DB に格納されます。

統合テスト用に選択した値 (実行前、つまり) が DB で見つかった値 (実行後、つまりcolumn =およびcolumn = ) と等しいStoreDataことをアサートして、統合テストを実行したいと思います。StoreDataid = 0, time = "13:00"StoreDataid0time_stamp"13:00"

LINQの使用を考えました。これは良いアプローチですか、それともこれを行うためのより良いアプローチはありますか?

4

1 に答える 1

1

技術的には、これは統合テストであり、データベースからデータを読み取り、正しく見えることを確認するテストを行うことは完全に有効です。

ただし、単体テストにしたい場合は、バッキングメカニズムをある種のメモリ構造にモックしてStoreData、データベースを呼び出す代わりに、メソッドがこの構造に挿入する必要があります。通常、これは、クエリがメモリ内の構造をターゲットにしていることを確認するために、メソッドをオーバーロードしてからSqlConnection何らかのファクトリメカニズムを作成することを意味します。SqlCommand

于 2012-04-24T17:38:14.873 に答える