鈴木@名古屋です。
Momijiya@....com さんは書きました。
>私が考え過ぎなのかもしれませんが、DB更新の場合はまっさらのデータでテスト
>したほうがいいのかなと言う点でした。
>データが更新された事の確認は簡単なのですが、更新されていない事の確認は
>どうするのだろうと。
>例えば、とんでもない部分が過って更新されている場合、全データを検証しない
>と問題が見つからないような気がして。
>ユニットテストの範疇ではないのかもしれませんが。
たしかにユニットテストの範囲を超えてしまいますね。うちの場合はDB への
アクセス方法を統一するために、JDBCのラッパークラス(いわゆる Facade パターン)
を作成し、皆そこを介してSQL文を発行しています。ある処理で、発行している、
SQL文はそのラッパークラスが受け取った SQL 文を見れば分かるし、UPDATE 文が
予期しないレコードを更新しているかどうかは、UPDATE文の戻り値を確認する
ことで分かるようにしています。
ただ、これはあくまで DB にアクセスする直前で網を張っているだけなので、
たとえば、DB 内部で更新時トリガーを設定している場合、どこのデータが更新
されるかは、分からないことになります。
データを組み合わせたテストは、所詮プログラム単体では分からないので、ユニット
テストの次工程(うちではシステム結合試験とか呼んでます)等で、確認していくこ
とになると思います。
---
鈴木 徹(Toru Suzuki)
MHIエアロスペースシステムズ株式会社(MASC)
E-mail : tsuzuki@....jp