赤坂さん,こんにちは.
石井です.
> |“テーブルAからデータを読み込み、読み込んだデータに基づいてテーブルB
> |を更新する”、という処理
> をテストしたい訳で、
> sakamotoさんのテストしたいことは、
> "テーブルAからデータを読み込む"という処理
> ということになるのでしょうか?
>
> どんな環境で、何をテストしたいのかにもよりますが、
> 単純に、Query(SQL文)が正しいかをテストするだけでも意味がありますよね。
>
> もしSQL文を作成するクラスが対象の単体テストなら、
> 期待するSQLと assertEquals()するだけでも十分なのでは?
うーん,そうでしょうか?
SQL文は自由度が高すぎるので,SQL文自体のテストを書くのは難しいと思います.
例えば,SQL文に空白を一つ入れるだけでassertEqualsのテストは失敗してし
まいますし,from句に書くテーブルのエイリアス名を変えるとか,in句をやめ
てExists句で書き直すとか,とってくるデータは同じでもいろんな書き方がで
きます.
やはりSQL文を直接テストするのはやめたほうがいいと思いますが….SQL 文
のリファクタリングができるテストじゃないと意味ないと思いますよ.
では.
---
石井