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吧