[seasar-dev:331] [S2Unit] S2TestCase の setUpAfterContainerInit() について
KOMORI Yusuke
y-komori @ nifty.ne.jp
2006年 4月 4日 (火) 00:03:16 JST
TO:ひがさん、小林さん
小森です。
社内でS2TestCaseを使っているプロジェクトから問題があがってきました。
■問題
S2TestCase を継承したクラスで setUpAfterContainerInit() をオーバーライ
ドして利用していたところ、Seasar2.3.x バージョンアップしたところで DataSource
のセットアップが行われなくなった。
■原因
むらたさんが調べたところ、以下のような状況になっているようです。
setDataSource() メソッドを S2FrameworkTestCase から S2TestCase を
移動した際(S2.2→S2.3のタイミング?)に、 setDataSource() の呼び出し
タイミングが変わった。
S2.2(S2FrameworkTestCase のリビジョン 229)
setUpAfterContainerInit() の呼び出し前に setDataSource() を呼び
出し。
→ ユーザーがsetUpAfterContainerInit() をオーバーライドする際、
super.setUpAfterContainerInit() を呼び出さなくてもOK.
S2.3(S2FrameworkTestCase のリビジョン 246)
setUpAfterContainerInit() を S2TestCase でオーバーライドして、そ
の中でsetDataSource() を呼び出し。
→ ユーザーがsetUpAfterContainerInit() をオーバーライドする際、
super.setUpAfterContainerInit() を呼び出さなくてはならない。
基本的には利用者側で修正すれば問題ないと思いますが、この手の挙動(オー
バーライドした際の親クラスメソッド呼び出しの要否、等)はドキュメントにも
書いた方がよいと思います。
私の方で、各メソッドの説明とともにドキュメントに追記したい(JavaDocレベ
ルでよいと思いますが、ここだけJavaDocに書いても仕方がないので)と思います
が良いですか?
----------------------------------------------
小森 裕介 / Yusuke Komori
E-Mail:y-komori @ nifty.ne.jp
Blog:http://d.hatena.ne.jp/y-komori/
URL:http://www.littleforest.jp/
Seasar-dev メーリングリストの案内