2009-05-15 15 views
2

私はデータアクセスレイヤーのいくつかのクラスの単体テストを追加しようとしていますが、戻り値のない更新ルーチンがあります。入力した列名で指定したIDに基づいて行を更新するだけです。ユニットデータアクセス層のテスト - 更新メソッドのテスト?

このメソッドでは、パラメータを収集して、ストアドプロシージャを呼び出してテーブルを更新するヘルパールーチンに渡します。

このようなシナリオで単体テストを実行する方法について推奨される方法はありますか?私は他の方法に依存しないテストを考えるのは苦労しています。

答えて

3

まず、データベースからデータを読み取るメソッドをテストします。

次に、更新関数を呼び出して、上でテストした関数を使用して、更新された値が正しいことを確認できます。

単体テストでは、呼び出されたものをテストするテストがある限り、他のメソッドを使用する傾向があります。

ヘルパー関数がデータベース(ストアドプロシージャまたは関数)にある場合は、まずDatabaseUnitTestを使用してヘルパー関数をテストしてから、ビジュアルベーシックコードをテストします。

0

私は、データが正しく更新されたことを確認するためにルックアップ方法を使用します。

はい、これは技術的には正常に機能するルックアップ方法を中継しますが、必ずしもその依存関係を回避する必要はないと思います。 lookupメソッドも同様にテストされていることを確認してください。

0

このメソッドを使用してデータを取得し、更新した値に戻り値をチェックし、期待値をアサートします。これは、データの検索に使用されたメソッドがテストされ、正常に動作していると仮定します。

0

私はnhibernateとトランザクションを使用し、unittestにはデータベースにコミットしませんが、必要に応じて同じエラーを返すが、データを書き込まないセッションをフラッシュします。

ビルドサーバーを持っている場合は、新しく作られたデータベースに対してunittestsを実行するだけです。これは新しく各ビルドで作成されます。ファイアバードなどのファイルベースのデータベースを使用してみてください。

関連する問題