[Seasar-user:5660] [Teeda] Actionクラスのunitテストについて

Mitsutaka Sato [E-MAIL ADDRESS DELETED]
2007年 1月 5日 (金) 05:47:44 JST


佐藤と申します。
引き続きTeedaに関しての質問です。

S2TestCaseを継承したテストクラスで実行してみたところ、

org.seasar.teeda.extension.interceptor.ActionSupportInterceptor.savePage(
ActionSupportInterceptor.java:82)
でnullpoが発生するようです。

発生箇所は、
ExternalContext externalContext = facesContext.getExternalContext();
で、facesContextがnullのため、、ということのようです。

TeedaのActionクラスをunitテストする方法論というかドキュメントはどこかにございますでしょうか?
テスト用のdiconファイルを作って、facesContextのMockを登録して、、、みたいな感じに
する必要があるのでしょうか?

以下スタックトレースです。(teeda 1.0.2)
===================================
java.lang.NullPointerException
    at
org.seasar.teeda.extension.interceptor.ActionSupportInterceptor.savePage(
ActionSupportInterceptor.java:82)
    at
org.seasar.teeda.extension.interceptor.ActionSupportInterceptor.invoke(
ActionSupportInterceptor.java:73)
    at
honesty.imapweb3.web.regist.ConfirmAction$$EnhancedByS2AOP$$4bf53e$$MethodInvocation$$doRegist0.proceed
(MethodInvocationClassGenerator.java)
    at org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(
TraceInterceptor.java:59)
    at
honesty.imapweb3.web.regist.ConfirmAction$$EnhancedByS2AOP$$4bf53e$$MethodInvocation$$doRegist0.proceed
(MethodInvocationClassGenerator.java)
    at
honesty.imapweb3.web.regist.ConfirmAction$$EnhancedByS2AOP$$4bf53e.doRegist
(ConfirmAction$$EnhancedByS2AOP$$4bf53e.java)
    at honesty.imapweb3.web.regist.ConfirmActionTest.test正常系(
ConfirmActionTest.java:67)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at junit.framework.TestCase.runTest(TestCase.java:164)
    at org.seasar.framework.unit.S2FrameworkTestCase.doRunTest(
S2FrameworkTestCase.java:294)
    at org.seasar.extension.unit.S2TestCase.doRunTest(S2TestCase.java:92)
    at org.seasar.framework.unit.S2FrameworkTestCase.runBare(
S2FrameworkTestCase.java:190)
    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:120)
    at junit.framework.TestSuite.runTest(TestSuite.java:230)
    at junit.framework.TestSuite.run(TestSuite.java:225)
    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)
===================================

以上よろしくお願いします。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20070105/31d44232/attachment.html 


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