Index: [Article Count Order] [Thread]

Date:  Mon, 12 Nov 2001 14:49:38 +0900
From:  SUZUKI Toru <tsuzuki@....jp>
Subject:  [XP-jp:02784] Re: XP セミナーレポート
To:  extremeprogramming-jp@....jp
Message-Id:  <200111120549.AA00141@....jp>
In-Reply-To:  <8e.1de05a86.291ea621@....com>
References:  <8e.1de05a86.291ea621@....com>
X-Mail-Count: 02784

鈴木@名古屋です。

Momijiya@....com さんは書きました。

>私が考え過ぎなのかもしれませんが、DB更新の場合はまっさらのデータでテスト
>したほうがいいのかなと言う点でした。
>データが更新された事の確認は簡単なのですが、更新されていない事の確認は
>どうするのだろうと。
>例えば、とんでもない部分が過って更新されている場合、全データを検証しない
>と問題が見つからないような気がして。
>ユニットテストの範疇ではないのかもしれませんが。

たしかにユニットテストの範囲を超えてしまいますね。うちの場合はDB への
アクセス方法を統一するために、JDBCのラッパークラス(いわゆる Facade パターン)
を作成し、皆そこを介してSQL文を発行しています。ある処理で、発行している、
SQL文はそのラッパークラスが受け取った SQL 文を見れば分かるし、UPDATE 文が
予期しないレコードを更新しているかどうかは、UPDATE文の戻り値を確認する
ことで分かるようにしています。

ただ、これはあくまで DB にアクセスする直前で網を張っているだけなので、
たとえば、DB 内部で更新時トリガーを設定している場合、どこのデータが更新
されるかは、分からないことになります。

データを組み合わせたテストは、所詮プログラム単体では分からないので、ユニット
テストの次工程(うちではシステム結合試験とか呼んでます)等で、確認していくこ
とになると思います。

---
鈴木 徹(Toru Suzuki)
MHIエアロスペースシステムズ株式会社(MASC)
E-mail  : tsuzuki@....jp