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