一、在web.xml中配置返调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>
二、在classes目录下配置cactus.properties配置文件
cactus.contextURL=http://localhost:8080/school测试的URL
cactus.servletRedirectorName=ServletRedirector反调Servlet名称
三、拷贝cactus库到lib目录下
四、启动WEB Server
五、写单元测试程序
packageorg.school.test;
//importjava.util.Random;
importjunit.framework.Test;
importjunit.framework.TestSuite;
importservletunit.struts.CactusStrutsTestCase;
importorg.apache.cactus.WebRequest;
importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
publicclasstestUserActionextendsCactusStrutsTestCase...{
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直接进行测试
分享到:
相关推荐
Cactus是一款用于Java Web应用程序单元测试的开源工具。在深入探讨Cactus的1.8.1版本之前...通过解压并分析`cactus-1.8.1-bin.zip`文件,开发者可以快速开始使用Cactus进行有效的单元测试,提高代码质量和项目稳定性。
在IT行业中,Cactus是一个非常重要的工具,尤其对于软件开发者来说,它是一个用于在服务器端进行单元测试的框架。这篇“Cactus的学习笔记(一)”可能会涵盖Cactus的基本概念、安装过程、如何配置以及如何编写和运行...
Cactus框架的主要特点是它提供了一种在应用服务器内部执行单元测试的方法,而不是通常在独立的测试环境中进行。这种测试方式可以更准确地模拟实际生产环境,确保代码在部署到服务器后能够正常运行。Cactus通过扩展...
Cactus是Apache Software Foundation(ASF)Jakarta项目下的一个开源子项目,主要功能在于提供一种简单且高效的框架来对服务器端的Java代码进行单元测试。这包括但不限于Servlets、EJBs、TagLibs、Filters等组件。...
Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等
4. Cactus:Cactus是一个用于在服务器环境中进行单元测试的框架,主要针对Java EE应用。它允许开发者在应用服务器内部运行测试,减少了部署到服务器进行测试的需要,提高了测试效率。 5. DbUnit:DbUnit是一个Junit...
Cactus是一个单元测试框架,特别适用于Java EE环境中的服务器端组件测试。它允许开发者在JVM内部执行EJB和Servlet的测试,减少了设置复杂测试环境的需要,提高了测试效率。 DbUnit是数据库单元测试的Java库,它帮助...
结合以上技术,项目通过Ant脚本来构建和部署应用,使用Cactus在EJB和Struts的环境下运行单元测试。DbUnit确保了测试数据的一致性,而StrutsTest则专门针对Struts组件进行测试。最后,JMeter进行性能测试,以验证系统...
1. **理解Web服务的测试原理**:Cactus的实现方式揭示了如何在服务器端进行单元测试,有助于提高测试的准确性和效率。 2. **提升框架设计能力**:Cactus的模块化设计和适配器模式可以作为学习框架设计的良好案例。...
Eclipse是一款广泛使用的Java集成开发环境,而JUnit则是Java编程语言中最常用的单元测试框架。本文将深入探讨如何在Eclipse中有效地进行JUnit测试,包括测试的不同类型、组织测试以及命名规则。 在软件开发中,自动...
例如,Cactus框架扩展了JUnit,使其能够对Servlet、JSP等Web组件进行单元测试;而HttpUnit则提供了对Web应用程序的功能单元测试支持;JsUnit专为JavaScript的单元测试设计。 #### 集成与自动化 为了进一步提高测试...
JUnit教程工程代码实例是针对Java开发人员的一个详细学习资源,主要涵盖了如何使用JUnit进行单元测试。JUnit是一款广泛使用的开源测试框架,它简化了Java应用程序的测试过程,使得开发者能够编写可重复运行的测试...
Jmock 使我们可以轻松地构造 Mock 对象,从而使单元测试顺利进行。 七、JunitPerf 进行性能测试 JunitPerf 是个来度量代码的性能和执行效率的一个性能测试工具,通过编写用于 JunitPerf 的单元测试代码能使这一...
JUnit是Java领域广泛使用的单元测试框架,它的Testcase类用于定义测试用例,每个用例包含一系列测试方法,比较实际结果与预期输出,确保代码逻辑正确。TestSuite类则可以组合多个Testcase或TestSuite,实现对多个类...
Cactus是在JUnit基础上扩展的,专门用于Java Web应用的单元测试,包括Servlet、Filter和JSP。在Cactus中,你可以通过继承特定的基类,如`ServletTestCase`、`FilterTestCase`或`JspTestCase`,来编写针对这些Web组件...
包括探索JUnit的核心、软件测试原则、测试覆盖率与开发、使用stub进行粗粒度测试...使用Cactus进行服务器端的Java测试、测试JSF应用程序、测试OSGi组件、测试数据库访问、测试基于JPA的应用程序、JUnit的其他用法等内容...
可以复制,并且有目录。 《JUnit实战(第2版)》从认识JUnit、不同的测试策略、JUnit与构建过程、JUnit扩展4个方面,由浅入深、由易到难地对JUnit...对于单元测试学习者和编程爱好者来说,本书则具有极高的学习参考价值。
JUnit,作为Java领域最广泛使用的单元测试框架,它的源码是许多开发者学习和研究的对象。本课程资源旨在帮助你深入理解JUnit的工作原理,提升你的测试编写技巧,以及对测试驱动开发(TDD)有更深入的理解。 1. ...