读书人

ssh整合struts 单元测试报错 初学大家

发布时间: 2012-03-02 14:40:29 作者: rapoo

ssh整合struts 单元测试报错 初学大家帮帮忙
servletunit.struts.ExceptionDuringTestError: An uncaught exception was thrown during actionExecute()
at servletunit.struts.MockStrutsTestCase.actionPerform(MockStrutsTestCase.java:305)
at com.software.web.action.IndexActionTest.testVeriry(IndexActionTest.java:37)
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 junit.framework.TestCase.runBare(TestCase.java:127)
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)


------------
Root Cause:
------------
javax.servlet.UnavailableException: Cannot initialize RequestProcessor of class org.springframework.web.struts.DelegationRequestProcessor: java.lang.ClassNotFoundException: org.springframework.web.struts.DelegationRequestProcessor
at org.apache.struts.action.ActionServlet.getRequestProcessor(ActionServlet.java:595)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at servletunit.struts.MockStrutsTestCase.actionPerform(MockStrutsTestCase.java:290)
at com.software.web.action.IndexActionTest.testVeriry(IndexActionTest.java:37)
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 junit.framework.TestCase.runBare(TestCase.java:127)
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)

测试类为:
package com.software.web.action;

import java.io.File;

import servletunit.struts.MockStrutsTestCase;

import com.software.web.core.SessionContainer;

public class IndexActionTest extends MockStrutsTestCase {

@Override
protected void setUp() throws Exception {
// TODO 自动生成方法存根
super.setUp();
//加上这个路径 否则会说扎不到web.xml文件的
setContextDirectory(new File( "WebRoot "));
}

@Override
protected void tearDown() throws Exception {
// TODO 自动生成方法存根
super.tearDown();
}
//测试方法,这里看源码
public void testVeriry()


{
this.addRequestParameter( "username ", "tang ");
this.addRequestParameter( "password ", "429 ");
this.addRequestParameter( "state ", "verify ");
//自动设置url
this.setRequestPathInfo( "/index ");
//进行测试
/*
* Executes the Action instance to be tested. This method calls the ActionServlet.doPost() method to execute
* the Action instance to be tested
*/
this.actionPerform();
//没有错误
this.verifyNoActionErrors();
//main文件夹下
this.verifyForward( "main ");


//进行断言
String user = ((SessionContainer)request.getSession().getAttribute( "SessionContainer ")).getUser().getUsername();
this.assertEquals( "tang ",user);
}

}

测试出现以上异常,大家帮帮忙

[解决办法]
An uncaught exception was thrown during actionExecute()
actionExecute() 的时候有未捕捉的exception抛出了
你不会是光写程序,不try catch吧

读书人网 >J2SE开发

热点推荐