2008年3月18日火曜日

S2JUnit4でNamingConventionの値を取得

スズキです。

この辺のお話です。(結構、苦労しちゃいました...)
http://ml.seasar.org/archives/seasar-user/2007-July/009286.html

convention.diconに下記のように記述しているのに、

<component class="org.seasar.framework.convention.impl.NamingConventionImpl">
  <initMethod name="addRootPackageName">
    <arg>"jp.co.iret.suz.mobile"</arg>
  </initMethod>
</component>

下記のような処理をしているクラスをS2JUnit4にてテストすると

@Binding
private NamingConvention namingConvention;
...
this.namingConvention.getRootPackageNames()[0]

下記例外が発生してしまいました。

java.lang.ArrayIndexOutOfBoundsException: 0

つまり、addRootPackageNameしたはずの値が
取得できていないようです。

調べてみると、デフォルトではS2JUnit4は
convention.dicon内のNamingConventionの設定を
読み込まないようです。(ちょっと自信ありませんが...)

で、読み込ませるためには下記のようなアノテーションを
テストクラスに付与することでできるようです。(できました)

@RegisterNamingConvention(false)

(デフォルトはtrueということですね)

つまり、こんな感じです。

@RunWith(Seasar2.class)
@RegisterNamingConvention(false)
public class IndexPageTest {
...

次はTeedaまわり、がんばろう。

--

http://suz-lab.blogspot.com/

0 コメント: