[Seasar-user:13921] Re: [Dbflute] Re: Re:[Dbflute] JUnitテストの時LabelH=?utf-8?b?ZWxwZXLjga7kvb/jgYTmlrnjgavjgaTjgYTjgabos6rllY/jgYzjgYI=?==?utf-8?b?44KK44G+44GZ44CC?=

kubo [E-MAIL ADDRESS DELETED]
2008年 4月 24日 (木) 16:28:25 JST


久保です。

とりあえず本題とそれますが、

>  @Before
>         public void setUp() throws Exception {
>                 super.setUp();
>                 include("dbflute.dicon");
>                 include("jdbc.dicon");
>                 include("app_aop.dicon");
>                 include("app.dicon");
>                 include("customizer.dicon");
>                 include("teedaCustomize.dicon");
>                 include("s2container.dicon");
>                 include("creator.dicon");
>                 include("convention.dicon");
>         }

は、もし「app.dicon」で他のdiconをincludeしているのであれば、

>         public void setUp() throws Exception {
>                 super.setUp();
>                 include("app.dicon");
>         }

だけでOKなはずです。


> 今はuserexistmsgにlabel.propertiesより読み込んだ値が入らなくて
> nullになります。。
> 要するに普通はuserexistmsgに'Duplication'とstring値が入りますが、
> テストの時は入らないです。

に関しては、ちょっと自分ではわかりません。
申し訳ございません。


2008/4/24 Yuu Koseki <[E-MAIL ADDRESS DELETED]>:
>
>  久保様、
>
>  お答えありがとうございます。
>
>  テストクラスのsetUp()を下記の様にcodingして解消出来ました。
>
>         @Before
>         public void setUp() throws Exception {
>                 include("dbflute.dicon");
>                 include("teedaCustomize.dicon");
>         }
>
>  でも今はテストされるpageクラスの
>   userexistmsg = lp.getLabelValue("userexist");
>
>  部分で
>  lp.getLabelValue("userexist")でnullPointExceptionも出ないし
>  system.out.plintln(lp); して見てもlpにちゃんと値が入っています。
>  (前投稿した問題解消)
>
>  でも問題がもう発生しました。
>  今はuserexistmsgにlabel.propertiesより読み込んだ値が入らなくて
>  nullになります。。
>  要するに普通はuserexistmsgに'Duplication'とstring値が入りますが、
>  テストの時は入らないです。
>
>  この問題は
>  @Before
>         public void setUp() throws Exception {
>                 super.setUp();
>                 include("dbflute.dicon");
>                 include("jdbc.dicon");
>                 include("app_aop.dicon");
>                 include("app.dicon");
>                 include("customizer.dicon");
>                 include("teedaCustomize.dicon");
>                 include("s2container.dicon");
>                 include("creator.dicon");
>                 include("convention.dicon");
>         }
>
>  とやって見ても同じです。
>  labelHelper自体はもうnullPointExceptionを発生しませんが、
>  propertiesファイルをちゃんと読み込まなくて
>  null値を読み込みます。
>
>  結局assertNotNull(page.userexistmsg); 部分の
>  テストを通過しません。(userexistmsgに値がnullので。。)
>
>  codingソースは13908, 13915の質問の時と同じです。(setUpメソッドだけ上記の様に変わりました)
>
>  御存じの方お答えお願いいたします。
>
>
>
>  ----- Original Message -----
>  送信者: kubo<[E-MAIL ADDRESS DELETED]>
>  宛先: [E-MAIL ADDRESS DELETED]
>  日付:Thursday, April, 24, 2008, 03:17 PM
>  件名: [Seasar-user:13916] Re:[Dbflute] JUnitテストの時LabelH=?utf-8?b?ZWxwZXLjga7kvb/jgYTmlr
>  njgavjgaTjgYTjgabos6rllY/jgYzjgYI=?==?utf-8?b?44KK44G+44GZ44CC?=
>
>  >
>  >
>  > 久保です。
>  >
>  > TeedaのLabelHelperは、どこかのdiconで明示的に
>  > 定義されているかと思います。
>  > (例えば、app.diconとか)
>  >
>  > どのLabelHelperを定義したdiconを
>  > テストケースのsetup()にてinclude()する必要がありますので、
>  > そちらの確認お願いします。
>  >
>  >
>  > ※Behaviorがテストケースで利用できているのも
>  > setup()にてdbflute.diconがIncludeされているからです。
>  >
>  >
>  > 2008/4/24 Yuu <[E-MAIL ADDRESS DELETED]>:
>  > > いつもお世話になります。
>  > >
>  > >  Junitテストの時org.seasar.teeda.extension.util.LabelHelperのgetLabelValue
>  > >  メソッドの使い方について質問しております。
>  > >
>  > >  RegisterPage.javaクラスの
>  > >
>  > >  import org.seasar.teeda.extension.util.LabelHelper;
>  > >  ..中略..
>  > >
>  > >  public class RegisterPage {
>  > >      public LabelHelper lp;
>  > >  ..中略..
>  > >
>  > >
>  > >      public Class doSave() {
>  > >                 boolean userchk;
>  > >                 userchk = usercheck();
>  > >
>  > >                 if (userchk){
>  > >                         userexistmsg = lp.getLabelValue("userexist");
>  > >                         System.out.println(lp + "  original lp");
>  > >                         return null;
>  > >                 }
>  > >                 else
>  > >                 {
>  > >                         insert();
>  > >                         return LoginPage.class;
>  > >                 }
>  > >         }
>  > >
>  > >  をテストする時
>  > >  userchkがtrueの場合userexistmsg = lp.getLabelValue("userexist");
>  > >  部分でnullPointExceptionが発生しています。
>  > >
>  > >
>  > >
>  > >  テストソースは
>  > >
>  > >  @Test
>  > >         public void testDoSave() {
>  > >                 // ## Arrange ##
>  > >                 RegisterPage page = new RegisterPage();
>  > >  page.userdetailsBhv = this.userdetailsBhv;
>  > >                 page.lp = this.lp;
>  > >
>  > >                 System.out.println(lp + " lp");
>  > >                 // ## Act ##
>  > >                 page.uid = "test";
>  > >                 Class result = page.doSave();
>  > >                 assertNull(result);
>  > >                 assertNotNull(registerPage.userexistmsg);
>  > >         }
>  > >
>  > >  です。Class result = page.doSave(); 部分でnullPointExceptionが発生します。
>  > >
>  > >  因みに
>  > >  LabelHelper lp;
>  > >  UserdetailsBhv userdetailsBhv;
>  > >  はテストクラスの宣言部に宣言されています。
>  > >
>  > >  userdetailsBhvは問題ありません。(値がちゃんと入ってる)
>  > >
>  > >  label.propertiesファイルがテストの時は接近できないですか。
>  > >  system.out.printlnで確認して見ても
>  > >  普通の時はlpに何か値が入っていますが(ちゃんと動いてる、propertiesファイル
>  > >  のuserexist=.. 部分をちゃんと読み込んでる)
>  > >  テストの時はnullが入っています。
>  > >  propertiesファイルも色んな所に置いて見ましたが解消できません。
>  > >
>  > >  解消する方法を御存じの方はお答えお願いいたします。
>  > >
>  > >
>  > >  _______________________________________________
>  > >  Seasar-user mailing list
>  > >  [E-MAIL ADDRESS DELETED]
>  > >  https://ml.seasar.org/mailman/listinfo/seasar-user
>  > >
>  > _______________________________________________
>  > Seasar-user mailing list
>  > [E-MAIL ADDRESS DELETED]
>  > https://ml.seasar.org/mailman/listinfo/seasar-user
>  >
>  _______________________________________________
>  Seasar-user mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内