使用cactus进行单元测试的方法
来源:互联网 发布:java web 日志采集 编辑:程序博客网 时间:2024/05/22 08:04
一、在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直接进行测试
- 使用cactus进行单元测试的方法
- 使用Cactus+Jetty进行servelt的单元测试
- 使用cactus实现对servlet进行单元测试
- 使用cactus实现对servlet进行单元测试
- cactus的使用
- 使用SpringJUnit4ClassRunner进行单元测试+常用的断言方法
- 单元测试方法的使用
- 使用Mockito对异步方法进行单元测试
- 使用Mockito对异步方法进行单元测试
- Java单元测试Junit(四)使用Cactus测试Servlet
- 使用 JUnit 进行 Java 代码的单元测试
- 使用 JUnit 进行 Java 代码的单元测试
- 使用DbUnit进行数据库操作的单元测试
- 使用Junit4进行单元测试的相关配置
- 使用 JUnit 进行 Java 代码的单元测试
- 使用Mocha进行Node.js的单元测试
- 便捷的使用QtTest进行批量单元测试
- 使用VS2013进行C#程序的单元测试
- 第一次写Blog
- 希腊字母表[摘录]
- 8086/8088指令系统
- 我的书也开始赚美金
- 遭遇Worm.Win32.Agent.o、Backdoor.Win32.SnooperYb.b等
- 使用cactus进行单元测试的方法
- Linux ARP缓存表
- 问题要讨论进步才会快
- activex控件加速键消息处理不完全方案
- 30岁之后可以干啥?不错的建议
- 配置Struts+spring+hibernate
- 最近工作
- prototype.js是什么?
- 动态链表排序函数(选择法)