Index: [Article Count Order] [Thread]

Date:  Mon, 12 Nov 2001 16:20:02 +0900
From:  Yasuo Higa <higa@....jp>
Subject:  [XP-jp:02785] Re: XP 	セミナーレポート
To:  extremeprogramming-jp@....jp
Message-Id:  <200111121620.HEG14772.BIJH@....jp>
In-Reply-To:  <200111120549.AA00141@....jp>
References:  <8e.1de05a86.291ea621@....com>	<200111120549.AA00141@....jp>
X-Mail-Count: 02785

<200111120549.AA00141@....jp> の、
   "[XP-jp:02784] Re: XP セミナーレポート" において、
   "SUZUKI Toru <tsuzuki@....jp>"さんは書きました:

ひがです。

> 鈴木@名古屋です。
> 
> Momijiya@....com さんは書きました。
> 
> >私が考え過ぎなのかもしれませんが、DB更新の場合はまっさらのデータでテスト
> >したほうがいいのかなと言う点でした。
> >データが更新された事の確認は簡単なのですが、更新されていない事の確認は
> >どうするのだろうと。
> >例えば、とんでもない部分が過って更新されている場合、全データを検証しない
> >と問題が見つからないような気がして。
> >ユニットテストの範疇ではないのかもしれませんが。
> 
> たしかにユニットテストの範囲を超えてしまいますね。うちの場合はDB への
> アクセス方法を統一するために、JDBCのラッパークラス(いわゆる Facade パターン)
> を作成し、皆そこを介してSQL文を発行しています。ある処理で、発行している、
> SQL文はそのラッパークラスが受け取った SQL 文を見れば分かるし、UPDATE 文が
> 予期しないレコードを更新しているかどうかは、UPDATE文の戻り値を確認する
> ことで分かるようにしています。
> 
うちのフレームワークでは、
スプーフィング(だます、なりすます)を
使っています。TestCaseでは、データをXMLで用意し、
自作のSpoofingDataSourceManagerクラスでデータをロードします。
javax.sql.DataSourceにアクセスするクラスは、
XMLがロードされていれば、SpoofingDataSourceManager経由
で、データ(XML)にアクセスし、XMLがロードされていなければ、
DataSourceにアクセスするようになってます。

データにアクセスするクライアントは、スプーフィングが
行われていることに気づきません。

> ただ、これはあくまで DB にアクセスする直前で網を張っているだけなので、
> たとえば、DB 内部で更新時トリガーを設定している場合、どこのデータが更新
> されるかは、分からないことになります。
> 
トリガもJavaで自前で実装しているので、
DBがなくてもテストができます。
---
Yasuo Higa <higa@....jp>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.