単体テストのデータ

単体テストをNUnitなどを使って自動化した時、テスト用DBはどのように管理すべきであろうか。
テストケースが増えるとそのテスト用にデータを追加する必要ある。データを追加して他のテストコードに影響がある場合は、そのテストケースは修正する必要があり、修正を忘れるとロジックは間違っていないのにテストが通らないという結果に陥ってしまう。問題は、ソースコードとテストDBの間に不整合があることである。解の一つしてテスト用DBファイルもソースコードと一緒にバージョン管理してしまう方法があると考えた。SQL Server2005以上であれば、DBファイルがアタッチ・デタッチできるので、テスト用DB(mdf)ファイルを用意し、ソースセーフ(VSS)などでソースコードと一緒にバージョン管理する。ラベルを適切につけてどの時点で不整合を起こしても、原因が分かるようにできそうだ。
また、テストケースでDBを更新するような処理をテストする場合は、DBをコミットする前に更新されているかをチェックする工夫が必要である。DBをコミットしてしまうと再帰テストができないからである。

トラックバック

トラックバックURL:
http://www.apricot-jp.com/cgi/mt/mt-tb.cgi/401

関連情報

・Microsoft JScript 実行時エラー:オブジェクトを指定してください。
・このログインで要求されたデータベースXXX を開けません。ログインに失敗しました。ASPNET はログインできません
・Logging Application Blockのトラブルシューティング
・IISのログ出力先
・このログインで要求されたデータベースXXX を開けません。ログインに失敗しました。ASPNET はログインできません
・C# 3.5 yieldの読み方
・ASP.NET サーバーサイドのイベント処理の順番
・ASP.NETのWebページでグーグルアドセンスを貼り付ける方法
・IIS メタベースにアクセスできませんでした
・VSSで管理されているプロジェクトは、ファイルの名前の変更や移動は極力行わない方が良い
・Oracle 9.2へOLE DB接続する方法
・単体テストのデータ
・この行は既に別のテーブルに属しています
・データベースのバージョンは 655 なので、開けません。
・証明書ストアでマニフェスト署名用の証明書が見つかりません。
・次のモジュールは最適化を有効にされて、またはデバッグ情報なしでビルドされました
・String.Concatメソッドを使った文字列の連結
・ファイルの存在をチェックする
・テキストファイルをロードし文字列を読み込むサンプル
・任意の数の引数を受け取るメソッド

Copyright(C) 2007 アーキテクト360 Allrights reserved.