一、在web.xml中配置返调servlet
二、在classes目录下配置cactus.properties配置文件
三、拷贝cactus库到lib目录下
四、启动WEB Server
五、写单元测试程序
五、进行单元测试
以上方法可以对struts+spring+Hibernate进行测试,还可以配置文件在WEB Servlet直接进行测试
<
servlet
>
< servlet-name > ServletRedirector </ servlet-name >
< servlet-class >
org.apache.cactus.server.ServletTestRedirector
</ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name > ServletRedirector </ servlet-name >
< url-pattern > /ServletRedirector </ url-pattern >
</ servlet-mapping >
< servlet-name > ServletRedirector </ servlet-name >
< servlet-class >
org.apache.cactus.server.ServletTestRedirector
</ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name > ServletRedirector </ servlet-name >
< url-pattern > /ServletRedirector </ url-pattern >
</ servlet-mapping >
cactus.contextURL
=
http://localhost:
8080
/school测试的URL
cactus.servletRedirectorName = ServletRedirector反调Servlet名称
cactus.servletRedirectorName = ServletRedirector反调Servlet名称
四、启动WEB Server
五、写单元测试程序
package
org.school.test;
// importjava.util.Random;
import junit.framework.Test;
import junit.framework.TestSuite;
import servletunit.struts.CactusStrutsTestCase;
import org.apache.cactus.WebRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class testUserAction extends CactusStrutsTestCase ... {
protectedfinalLoglog=LogFactory.getLog(getClass());
publictestUserAction(Stringarg)...{
super(arg);
}
publicvoidbeginRegister(WebRequesttheRequest)...{
//theRequest.addHeader("METHOD","POST");
//theRequest.addParameter("param","value",WebRequest.POST_METHOD);
//Randomrand=newRandom();
//加载post数量
theRequest.addParameter("username","jingmin",WebRequest.POST_METHOD);
theRequest.addParameter("password","vkbje76",WebRequest.POST_METHOD);
theRequest.addParameter("repassword","vkbje76",WebRequest.POST_METHOD);
theRequest.addParameter("email","vkbje76@163.com",WebRequest.POST_METHOD);
}
publicvoidtestRegister()...{
setRequestPathInfo("/register");
actionPerform();
verifyNoActionErrors();
}
publicvoidtestLogin()...{
setRequestPathInfo("/login");
addRequestParameter("username","jingmin");
addRequestParameter("password","vkbje76");
actionPerform();
//Enumerationnames=request.getAttributeNames();
//while(names.hasMoreElements()){
//Stringname=(String)names.nextElement();
//log.error(name);
//}
//log.error(request.getAttribute("org.apache.struts.action.MESSAGE"));
verifyNoActionErrors();
}
publicstaticTestsuite()...{
TestSuitesuite=newTestSuite();
//
suite.addTest(newtestUserAction("testRegister"));
suite.addTest(newtestUserAction("testLogin"));
suite.addTest(newtestUtil("testMD5"));
returnsuite;
}
@Override
protectedvoidsetUp()throwsException...{
super.setUp();
}
@Override
protectedvoidtearDown()throwsException...{
super.tearDown();
}
}
// importjava.util.Random;
import junit.framework.Test;
import junit.framework.TestSuite;
import servletunit.struts.CactusStrutsTestCase;
import org.apache.cactus.WebRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class testUserAction extends CactusStrutsTestCase ... {
protectedfinalLoglog=LogFactory.getLog(getClass());
publictestUserAction(Stringarg)...{
super(arg);
}
publicvoidbeginRegister(WebRequesttheRequest)...{
//theRequest.addHeader("METHOD","POST");
//theRequest.addParameter("param","value",WebRequest.POST_METHOD);
//Randomrand=newRandom();
//加载post数量
theRequest.addParameter("username","jingmin",WebRequest.POST_METHOD);
theRequest.addParameter("password","vkbje76",WebRequest.POST_METHOD);
theRequest.addParameter("repassword","vkbje76",WebRequest.POST_METHOD);
theRequest.addParameter("email","vkbje76@163.com",WebRequest.POST_METHOD);
}
publicvoidtestRegister()...{
setRequestPathInfo("/register");
actionPerform();
verifyNoActionErrors();
}
publicvoidtestLogin()...{
setRequestPathInfo("/login");
addRequestParameter("username","jingmin");
addRequestParameter("password","vkbje76");
actionPerform();
//Enumerationnames=request.getAttributeNames();
//while(names.hasMoreElements()){
//Stringname=(String)names.nextElement();
//log.error(name);
//}
//log.error(request.getAttribute("org.apache.struts.action.MESSAGE"));
verifyNoActionErrors();
}
publicstaticTestsuite()...{
TestSuitesuite=newTestSuite();
//
suite.addTest(newtestUserAction("testRegister"));
suite.addTest(newtestUserAction("testLogin"));
suite.addTest(newtestUtil("testMD5"));
returnsuite;
}
@Override
protectedvoidsetUp()throwsException...{
super.setUp();
}
@Override
protectedvoidtearDown()throwsException...{
super.tearDown();
}
}
五、进行单元测试
以上方法可以对struts+spring+Hibernate进行测试,还可以配置文件在WEB Servlet直接进行测试