ちゃんとテストにしないとね

DAOに書いたメソッドのテストを書いたので、いい加減にこのテストクラスを修正しないとヤバい。
なぜって、今の状態はテストの結果がテスト前のDBの状態に依存するからである。
要するに毎回同じ結果が得られないかもしれないということ。

とりあえずsetup()でテーブルの状態を常に同じ状態にするようにしよう。
そのためにはHSQLDBにアクセスする手段が必要である。

・・・の前にドキュメントを読もう。きっと何か発見があるハズだ!
と思ったら案の定、S2Unitのドキュメントに興味深い記述を発見。

  • include("j2ee.dicon")をしておいて、テストメソッド名の最後にTxをつける(testXxxTx)と、テストメソッドの直前にトランザクションを開始し、テストメソッドの直後にトランザクションロールバックするので、データベースに関するテストを行った場合のクリーンアップの処理が不要になります。

すばらしい。これが出来れば問題は解決だ。ということで、後はS2Unitの利用法を調べるだけである。

とりあえずはS2TestCaseを継承するようにしてみよう。S2UnitはJUnitを拡張しているようなので問題はないだろう。