[Seasar-user:4737] Re: S2StrutsUnit について

Katsuhiko Nagashima [E-MAIL ADDRESS DELETED]
2006年 10月 3日 (火) 21:11:52 JST


永島です。

POJO Actionのため発生しているのではないかと思います。
対応につきましては検討したいと思います。
ご指摘ありがとうございます。

POJO Actionの場合は、S2StrutsTestCaseよりS2TestCaseを利用し、
普通(?)にテストしたほうが楽かもしれません。

06/09/29 に Naohiro Kuroda<[E-MAIL ADDRESS DELETED]> さんは書きました:
> お世話になっております。
>
> 現在、無設定 Struts を S2StrutsUnit でテストするための設定に取り組んでいる所ですが、
> 下記の様なスタックトレースが出て、エラー終了してしまいます。
>
> S2StrutsUnit は RC1 と言うバージョンを使っております。
>
> 恐らく、コンポーネントの自動登録のところでこけていると思いますが、
> このアプリケーションを J2EE サーバにデプロイした時には正常に動作するものです。
>
> =======
> java.lang.ClassCastException:
> hoge.category1.action.impl.Category1MasterViewInitActionImpl$$EnhancedByS2AOP$$1c5f743
>         at org.seasar.struts.unit.S2StrutsTestCase.createAction(S2StrutsTestCase.java:58)
>         at org.seasar.struts.unit.S2StrutsTestCase.execute(S2StrutsTestCase.java:78)
>         at
> jp.co.ssol.sspj.war.category1.action.Category1MasterViewTest.testTest(Category1MasterViewTest.java:27)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at junit.framework.TestCase.runTest(TestCase.java:154)
>         at org.seasar.framework.unit.S2FrameworkTestCase.doRunTest(S2FrameworkTestCase.java:212)
>         at org.seasar.extension.unit.S2TestCase.doRunTest(S2TestCase.java:89)
>         at org.seasar.framework.unit.S2FrameworkTestCase.runBare(S2FrameworkTestCase.java:139)
>         at org.seasar.httpunit.S2HttpTestCase.runBare(S2HttpTestCase.java:323)
>         at junit.framework.TestResult$1.protect(TestResult.java:106)
>         at junit.framework.TestResult.runProtected(TestResult.java:124)
>         at junit.framework.TestResult.run(TestResult.java:109)
>         at junit.framework.TestCase.run(TestCase.java:118)
>         at junit.framework.TestSuite.runTest(TestSuite.java:208)
>         at junit.framework.TestSuite.run(TestSuite.java:203)
>         at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
>         at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
>         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
>         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
>         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> =======
>
> テストクラスは下記です。
>
> ===============
> public class Category1MasterViewTest extends S2StrutsTestCase {
>
>         public Category1MasterViewTest(String arg0) {
>                 super(arg0);
>         }
>
>         protected void setUp() {
>                 include("app.dicon");
>                 include("HttpServletRequestMockObject.dicon");
>                 include("HttpServletResponseMockObject.dicon");
>         }
>
>         public void testTest() throws Exception {
>                 String actual = execute(Category1MasterViewInitAction.class);
>         }
>
> }
> ===============
>
> app.dicon は下記です。(抜粋)
> ===============
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
>         "http://www.seasar.org/dtd/components21.dtd">
> <components>
>         <include path="hoge/war/dicon/RequestProcessor.dicon"/>
>         <include path="s2struts.dicon"/>
>
>         <include path="hoge/war/dicon/category1.dicon"/>
> ===============
>
> category1.dicon 抜粋 =>example に付属しているものとほぼ同じ内容です。
> ===============
>         <component
>                 class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
>                 <property name="instanceDef">
>                         @[E-MAIL ADDRESS DELETED]
>                 </property>
>                 <property name="autoNaming">
>                         <component
>                                 class="org.seasar.framework.container.autoregister.DefaultAutoNaming" />
>                 </property>
>                 <initMethod name="addClassPattern">
>                         <arg>"hoge.war.category1.action.impl"</arg>
>                         <arg>".*ActionImpl"</arg>
>                 </initMethod>
>         </component>
>         <component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
>                 <property name="interceptor">actionInterceptorChain</property>
>                 <initMethod name="addClassPattern">
>                         <arg>"hoge.war.category1.action.impl"</arg>
>                         <arg>".*ActionImpl"</arg>
>                 </initMethod>
>         </component>
> ===============
>
> 勉強不足で情報が不足しているかもしれませんが、何卒よろしくお願い致します。
>
> 以上、よろしくお願いします。
>
>
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
> 黒田尚宏 <Naohiro Kuroda>
>
> [E-MAIL ADDRESS DELETED]
>
> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user
>


-- 
Katsuhiko Nagashima



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