一、在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;
// import java.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 ... {
protected final Log log = LogFactory.getLog(getClass());
public testUserAction(String arg)...{
super(arg);
}
public void beginRegister(WebRequest theRequest) ...{
// theRequest.addHeader("METHOD", "POST");
// theRequest.addParameter("param", "value", WebRequest.POST_METHOD);
// Random rand=new Random();
//加载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);
}
public void testRegister() ...{
setRequestPathInfo("/register");
actionPerform();
verifyNoActionErrors();
}
public void testLogin() ...{
setRequestPathInfo("/login");
addRequestParameter("username", "jingmin");
addRequestParameter("password", "vkbje76");
actionPerform();
// Enumeration names=request.getAttributeNames();
// while(names.hasMoreElements()){
// String name=(String)names.nextElement();
// log.error(name);
// }
// log.error(request.getAttribute("org.apache.struts.action.MESSAGE"));
verifyNoActionErrors();
}
public static Test suite()...{
TestSuite suite=new TestSuite();
//
suite.addTest(new testUserAction("testRegister"));
suite.addTest(new testUserAction("testLogin"));
suite.addTest(new testUtil("testMD5"));
return suite;
}
@Override
protected void setUp() throws Exception ...{
super.setUp();
}
@Override
protected void tearDown() throws Exception ...{
super.tearDown();
}
}
// import java.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 ... {
protected final Log log = LogFactory.getLog(getClass());
public testUserAction(String arg)...{
super(arg);
}
public void beginRegister(WebRequest theRequest) ...{
// theRequest.addHeader("METHOD", "POST");
// theRequest.addParameter("param", "value", WebRequest.POST_METHOD);
// Random rand=new Random();
//加载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);
}
public void testRegister() ...{
setRequestPathInfo("/register");
actionPerform();
verifyNoActionErrors();
}
public void testLogin() ...{
setRequestPathInfo("/login");
addRequestParameter("username", "jingmin");
addRequestParameter("password", "vkbje76");
actionPerform();
// Enumeration names=request.getAttributeNames();
// while(names.hasMoreElements()){
// String name=(String)names.nextElement();
// log.error(name);
// }
// log.error(request.getAttribute("org.apache.struts.action.MESSAGE"));
verifyNoActionErrors();
}
public static Test suite()...{
TestSuite suite=new TestSuite();
//
suite.addTest(new testUserAction("testRegister"));
suite.addTest(new testUserAction("testLogin"));
suite.addTest(new testUtil("testMD5"));
return suite;
}
@Override
protected void setUp() throws Exception ...{
super.setUp();
}
@Override
protected void tearDown() throws Exception ...{
super.tearDown();
}
}
五、进行单元测试
以上方法可以对struts+spring+Hibernate进行测试,还可以配置文件在WEB Servlet直接进行测试