はずしている可能性が高いのですが、次は使えませんか?
http://dbunit.sourceforge.net/
-----Original Message-----
From: shima tetuo [mailto:mlmlml@....jp]
Sent: Monday, November 17, 2003 8:18 PM
To: extremeprogramming-jp@....jp
Subject: [XP-jp:04749] mock object について
tetuoです。
先日このメーリングリストでも少し話がありましたが、mock objectを利用して
のUnitテストについて少し皆さんの意見を聞きたい事があります。
やっている事:
データベースのデータを必要とするクラスにおいてのmock objectの利用
参考にしたサイト:
疑似オブジェクトによる単体テスト
http://www-6.ibm.com/jp/developerworks/java/030207/j_j-mocktest.html
Developing JDBC applications test-first
http://wiki.truemesh.com/mockobjects/DevelopingJdbcApplicationsTestFirst
理解している範囲:
データベース、ネットワーク、再現しづらい(又は意図的に実行出来ない)等の
環境的要因によってテストケースが複雑になる場合、これらの環境的要因となる
クラスのmock objectを作成、使用し、テスト対象となるクラスのメソッドが結
果ではなく、正しい処理で進んでいるかを確認する。
例:
1.2 Add a member to the list
http://wiki.truemesh.com/mockobjects/DevelopingJdbcApplicationsTestFirst#head-16eefd5c8e14b9b26f8ae433c7bb14e0f12633c8
ここではメーリングリストへ参加するメンバーの登録を実行するメソッドのテス
トを説明していますが、内容としては結果的にデータベースに登録された内容で
はなく下記のような最低限の処理を確認しています。
1.正しい追加SQLが発行されているか
2.SQLへのパラメータとしてメールアドレスと名前が設定されているか
3.Executeが1回だけ実行されているか
4.Closeが1回だけ実行されているか
ここまででの疑問点:
mock objectを使用する事により、この記事で言うと実データを操作することな
く、メソッドの挙動の正確さを確認しているだけだと思いますが、実際に実行さ
れるべき"SQL自体"の整合性はどのようにテストすべきなのでしょうか?
例:本当にエラーの発生しないSQLかどうかの確認等
簡単に言えば、mock objectを使用する事によって確認していない"結果"は、ど
こで確認すべきなのかと言う事です。
mock objectは使えるようになればかなりUnitテストの利用価値が高まると思う
ので、活発な意見が聞ければ幸いです。