[Seasar-user:4724] S2StrutsUnit について

Naohiro Kuroda [E-MAIL ADDRESS DELETED]
2006年 9月 29日 (金) 18:39:27 JST


お世話になっております。

現在、無設定 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 メーリングリストの案内