Struts是目前在web开发中广泛使用的几个框架之一,而StrutsTest正是专门负责测试strut应用程序的Mock测试框架。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 使用目的
StrtusTest是junit的扩展,使用它,不需要启动servlet容器就可以方便的测试struts应用程序(容器外测试)。它也是属于使用Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest则是专门负责测试Struts应用程序的Mock对象测试框架。除了容器外测试,StrutsTest也可以很方便的用容器内的测试。
当前的版本是StrutsTest2.1.0,在这个版本中不支持Struts1.0。如果需要测试struts1.0的应用程序,对应的版本是StrutsTest2.0。可以从http://sourceforge.net/projects/strutstestcase/下载。
用法
1. 基本步骤:
- 书写struts action。
- 确定需要进行测试的方式:Mock对象则选用MockStrutsTestCase作为基类;Cactus方式则选用CactusStrutsTestCase;这两种方式以下的步骤都是一样的。
- 使用setUp和tearDown进行初始化,明确这两个函数的第一句话是调用super的方法。
- 设置要测试的struts action的路径,方便strutstest能找到web.xml和struts相关的配置文档。
- 设置action在strtus-config.xml中对应的path名称。
- 设置action需要使用的各个参数值到request对象中,包括action所使用的formbean的值。
- 执行action。
- 验证action的返回路径是否正确,即forward的名字。
- 验证action相关的其余部分。
2. 使用例子(采用Mock方式):
public class DeparmentDBActionTest extends MockStrutsTestCase {
public DeparmentDBActionTest(String arg0) {
super(arg0);
}
public void setUp(){
super.setUp();
//指明web应用的根
File contextFile = new File("D:\\Projects\\fog\\implement\\web");
setContextDirectory(contextFile);
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testDoAdd() {
//设置action的path
setRequestPathInfo("/dpEdit");
//准备action所需要的formbean的参数
addRequestParameter("method", "doAdd");
addRequestParameter("pageId", "1");
addRequestParameter("dpname","测试部门");
addRequestParameter("dptype","测试部门");
addRequestParameter("yn","n");
//执行action
actionPerform();
//验证返回的forward
verifyForward("success");
}
3. 主要函数和作用:
- setContextDirectory,设置web应用的根
- setRequestPathInfo,设置request的请求
- addRequestParameter,将参数和对应的值加入request中
- actionPerform,执行这个请求
- verifyForward,验证forward的名字是否正确
- verifyForwardPath,验证forward的path是否正确
- verifyNoActionErrors,验证在action执行过程中没有ActionError产生
- verifyActionErrors,验证在action执行过程中产生的ActionError集合的内容
具体详细的内容请参见对应的javaDoc。
4. 测试Tile。其基本过程与上面类似,不同之处在于验证:使用verifyTilesForward和verifyInputTilesForward。
5. 测试子模块。其基本过程也和上面一样,不同之处在于需要指定该模块所需要使用的struts-config.xml和调用方式:
- 首先,指定所需要的struts-config.xml:
setConfigFile("mymodule","/WEB-INF/struts-config-mymodule.xml");
- 其次,指明调用的路径:
setRequestPathInfo("/mymodule","/login.do");
检查表
使用StrutsTest需要注意的地方:
- 在TestCase中可以访问request、session等对象,StrutsTest为我们提供了访问接口。
- junit的assert函数和fail函数都可以在StrutsTest中使用。
- 对于文件上载,目前StrutsTest并没有什么特别好的方案。具体参见StrusTest的Faq。
分享到:
相关推荐
它也是属于使用Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest则是专门负责测试Struts应用程序的Mock对象测试框架。除了容器外测试,StrutsTest也可以很方便的用容器内的...
10. **最佳实践**:使用StrutsTest for JUnit时,还需要遵循一定的测试编写规范和最佳实践,如使用描述性测试方法名、保持测试独立性、避免测试副作用等。 了解这些知识点后,开发者可以更有效地利用StrutsTest for...
strutstest-2.1.4.jar
我只单搜它但csdn上不出现单搜结果,现在我单独上传供大家下载使用。
用来测试struts的action的不错工具。
总的来说,这个"strutstest214"源文件集合展示了如何使用JUnit来测试Struts应用程序,涵盖了从构建配置到具体测试代码的多个方面。通过深入研究这些文件,开发者可以更好地理解和掌握Struts框架的内部工作原理,同时...
本项目利用一系列强大的工具,如EJB(Enterprise JavaBeans)、Struts 1.3、Ant构建工具、Cactus测试框架、DbUnit数据库单元测试工具、JMeter性能测试工具以及StrutsTest扩展,来实现一个全面的测试流程。...
在本文中,我们将深入探讨如何使用一系列技术和工具,如EJB、Struts1.3、Ant、Cactus、DbUnit、JMeter以及StrutsTest,来实现一个完整的测试流程,针对一个基于Java的企业级应用程序进行全面的测试。这些技术在软件...
本项目"使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试3"正是针对这一目标进行的实践。下面将详细介绍这些技术及其在测试中的应用。 **EJB(Enterprise JavaBeans)** 是Java平台上的企业级组件...
"strutstest210-1.1_2.3.zip"这个文件名暗示了一个基于Struts2的测试项目,版本可能是1.1或2.3。"strutstest"可能是指该项目的主要部分,用于演示或测试Struts2框架的功能。这个压缩包很可能包含了一个完整的Struts2...
6. **编写JSP页面**:展示数据和接收用户输入,使用Struts标签库简化开发。 7. **部署和运行**:将项目打包成WAR文件,部署到Tomcat服务器,通过浏览器访问测试。 8. **调试和优化**:根据需求调整Action逻辑,...
此外,测试还可能涉及模拟环境,例如使用Mock对象来替代真实的数据库或服务,这样可以独立于外部环境进行单元测试。同时,Struts2提供了一些测试工具,如Struts2的TestNG或JUnit支持,可以帮助开发者编写和执行测试...
- 使用StrutsTest提供的API来创建模拟的`HttpServletRequest`、`HttpServletResponse`等对象。 - 通过模拟对象来构造所需的测试场景。 3. **编写测试案例**: - 使用JUnit编写测试案例。 - 在每个测试案例中,...
struts.jar JAVA 开发常用包
- 例如,假设基准路径为`C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\strutsTest`,那么相对路径`web.xml`对应的绝对路径就是`C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps...
这个示例特别强调了使用JSON进行局部刷新以及集成插件,同时也包含了一个简化的数据库结构,主要目的是为了测试和理解Struts2框架的工作原理和特性。 1. **Struts2框架基础**: Struts2是Apache软件基金会的一个...
为了使用StrutsTest框架,首先需要将对应的jar包添加到项目的依赖中,例如`strutstest-2.1.4.jar`。 ##### 2. 创建测试用例 下面是一个简单的示例,展示如何使用StrutsTest框架编写测试用例: ```java import org...
在`StrutsTest`案例中,Hibernate可能通过SessionFactory创建Session,然后使用Session来查询、插入、更新和删除数据。实体类(Entity)对应数据库表,实体类的属性与表字段对应,通过注解或XML配置文件定义映射关系...
这个压缩包“StrutsTestCase-2.1.4(含文档、源码、官方示例).rar”包含了StrutsTestCase的2.1.4版本,提供了丰富的资源来帮助用户理解和使用这个测试框架。 首先,我们来看"StrutsTestCase示例(含详细步骤)....
在使用JUnit/StrutsTest时,可能会遇到java.lang.UnsupportedClassVersionError: junit/framework/TestListener (Unsupported major.minor version 49.0)错误。 解决方法:根据JDK版本选择合适的JUnit版本。如果...