Index: [Article Count Order] [Thread]

Date:  Wed, 19 Nov 2003 17:52:10 +0900
From:  藤田 <phujita@....com>
Subject:  [XP-jp:04754] Re: mock object について
To:  extremeprogramming-jp@....jp
Message-Id:  <20031119173211.6702.PHUJITA@....com>
In-Reply-To:  <3FB9AB50.9010108@....jp>
References:  <20031117192756.E8C4.MLMLML@....jp> <3FB9AB50.9010108@....jp>
X-Mail-Count: 04754

お世話になっております。
藤田と申します。

>   i) SQLが正しいか。
SQL自体の正当性を検証するのはかなり難しいとおもいます。
(というか今まさに参加しているプロジェクトで、技術統括をしてるえらい人か
ら指摘されました)

そのえらい人いわく、超レガシー(ネットワークDBとかVSAMファイル)からシス
テム移行でRDB化する場合、SQL(特に複雑なWHERE句)を正しく書けているかを
検証しきれなくて、はまるという事例が割と多く発生しているとのことです。

 確かにSQLUNITみたいなものがあればよいのでしょうが、何か、有効な解がな
いか考えどころです・・・・。



----------------------- Original Message -----------------------
On Tue, 18 Nov 2003 14:17:04 +0900
安井 <yasui@....jp> wrote:

> こんにちは、安井@Aspacです。
> 
> shima tetuo wrote:
> > 1.正しい追加SQLが発行されているか
> > 2.SQLへのパラメータとしてメールアドレスと名前が設定されているか
> > 3.Executeが1回だけ実行されているか
> > 4.Closeが1回だけ実行されているか
> 
>   わたしだったら、テストを以下のように分割します。
> 
>   i) SQLが正しいか。
>   ii) 正しいパラメータが渡されているか。
>       Executeが1回だけ実行されているか。
>       Closeが1回だけ実行されているか。
> 
>   そのうえで、実際にSQLを発行するのは別クラスに分離して(DAO
> パターン?)、そちらでは実際にDBに書き込んだ内容を確認しま
> す。mock object で確認するのは ii) の箇所だけにします。
> 
>   ほかの皆さんはどんなふうにしますか?ほかのやりかたも知りた
> いので、ぜひ教えてください。
> 
> > 簡単に言えば、mock objectを使用する事によって確認していない"結果"は、ど
> > こで確認すべきなのかと言う事です。
> 
>   SQLを実行した結果自体は、どうしてもDBを使ってテストしたい
> ですね。ご紹介の記事にあった、
> 
> > Of course, we will also need integration tests to check
> > the whole process, but those should be more like an
> > acceptance test for a larger module.
> (意訳:もちろん処理全体のテストは必要になる。それはもっと大
> きな単位での受け入れテストとして扱ったほうがよい。)
> 
>   という部分は、たとえば「ユーザー登録してからメールを送信す
> ると新しいユーザにも届く」というテストで確認すればよい、と
> 言っているように思いました。でもそれっていきなり規模が大きく
> なりすぎて、バグを追跡するのが難しくなるなあ。
> 
> -- 
> アジアパシフィックシステム総研 ソリューション3部   安井 力
>          http://www.asia.co.jp/            yasui@....jp
>                             03-3985-3886 / FAX:03-3985-3778
> 

-- 
藤田 <phujita@....com>