2012-04-24 12 views
1

私は、関数を呼び出すことによってデータベースにデータを格納しています(StoreData)。デザイナーコードではSqlConnectionが開かれ、SqlCommandが実行され、SqlConnectionが終了します。 StoreDataが正常に実行された後、データはDBに格納されます。LINQを使用してデータベース内の値をアサートする

私は統合テストのために選択した値(StoreData実行する前に、すなわち。id = 0, time = "13:00")はすなわちStoreDataの実行、後にDB(で見つかった値と同じであることを主張することによりStoreDataに統合テストを実行したいと思いますidカラム= 0およびtime_stampカラム= "13:00")。

私はLINQの使用について考えました。これは良いアプローチですか、これを行うにはよりよいアプローチがありますか?

答えて

1

技術的には、これは統合テストであり、データをデータベースから読み取って正しいものにするテストを行うことは完全に有効です。

しかし、単体テストにしたいのであれば、バッキングメカニズムを何らかのメモリ構造にしようとすると、StoreDataメソッドがデータベースを呼び出す代わりにこの構造体に挿入されます。通常、それはSqlConnectionSqlCommandのための何らかの工場の仕組みを作った後、メソッドがオーバーロードされてクエリがあなたのメモリ構造をターゲットにしていることを確認することを意味します。

+0

私は最初、統合テストとしてこれを疑っていました。私はユニットテストのための嘲笑を理解しています。統合テストの場合は、DBからデータを読み込む方法(LINQなどを使用して)を理解する方法がありますか?ご回答有難うございます。 –

+0

まあ、あなたはあなたが持っている確立されたローディングメカニズムを使用することができます。保存をテストしている場合は、負荷をテストしていません。したがって、セーブコードをテストし、要素を取得して値をチェックするコードをロードすることができます。 – Tejs

+0

それは私に攻撃の計画を与える。ありがとう。 –

関連する問題