[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 メーリングリストの案内