`
fanjava
  • 浏览: 240154 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

StrutsTest使用简明手册

阅读更多
Struts是目前在web开发中广泛使用的几个框架之一,而StrutsTest正是专门负责测试strut应用程序的Mock测试框架。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

使用目的

StrtusTestjunit的扩展,使用它,不需要启动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;这两种方式以下的步骤都是一样的。

- 使用setUptearDown进行初始化,明确这两个函数的第一句话是调用super的方法。

- 设置要测试的struts action的路径,方便strutstest能找到web.xmlstruts相关的配置文档。

- 设置actionstrtus-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() {

//设置actionpath

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,验证forwardpath是否正确

- verifyNoActionErrors,验证在action执行过程中没有ActionError产生

- verifyActionErrors,验证在action执行过程中产生的ActionError集合的内容

具体详细的内容请参见对应的javaDoc

4. 测试Tile。其基本过程与上面类似,不同之处在于验证:使用verifyTilesForwardverifyInputTilesForward

5. 测试子模块。其基本过程也和上面一样,不同之处在于需要指定该模块所需要使用的struts-config.xml和调用方式:

- 首先,指定所需要的struts-config.xml

setConfigFile("mymodule","/WEB-INF/struts-config-mymodule.xml");

- 其次,指明调用的路径:

setRequestPathInfo("/mymodule","/login.do");

检查表

使用StrutsTest需要注意的地方:

- TestCase中可以访问requestsession等对象,StrutsTest为我们提供了访问接口。

- junitassert函数和fail函数都可以在StrutsTest中使用。

- 对于文件上载,目前StrutsTest并没有什么特别好的方案。具体参见StrusTestFaq

分享到:
评论

相关推荐

    StrutsTest

    它也是属于使用Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest则是专门负责测试Struts应用程序的Mock对象测试框架。除了容器外测试,StrutsTest也可以很方便的用容器内的...

    StrutsTest for junit

    10. **最佳实践**:使用StrutsTest for JUnit时,还需要遵循一定的测试编写规范和最佳实践,如使用描述性测试方法名、保持测试独立性、避免测试副作用等。 了解这些知识点后,开发者可以更有效地利用StrutsTest for...

    strutstest-2.1.4.jar

    strutstest-2.1.4.jar

    strutstest-2.1.0.jar

    我只单搜它但csdn上不出现单搜结果,现在我单独上传供大家下载使用。

    strutstest-2.1.3.jar

    用来测试struts的action的不错工具。

    strutstest214源文件

    总的来说,这个"strutstest214"源文件集合展示了如何使用JUnit来测试Struts应用程序,涵盖了从构建配置到具体测试代码的多个方面。通过深入研究这些文件,开发者可以更好地理解和掌握Struts框架的内部工作原理,同时...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试2

    本项目利用一系列强大的工具,如EJB(Enterprise JavaBeans)、Struts 1.3、Ant构建工具、Cactus测试框架、DbUnit数据库单元测试工具、JMeter性能测试工具以及StrutsTest扩展,来实现一个全面的测试流程。...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试4

    在本文中,我们将深入探讨如何使用一系列技术和工具,如EJB、Struts1.3、Ant、Cactus、DbUnit、JMeter以及StrutsTest,来实现一个完整的测试流程,针对一个基于Java的企业级应用程序进行全面的测试。这些技术在软件...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试3

    本项目"使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试3"正是针对这一目标进行的实践。下面将详细介绍这些技术及其在测试中的应用。 **EJB(Enterprise JavaBeans)** 是Java平台上的企业级组件...

    ⑨strutstest210-1.1_2.3.zip

    "strutstest210-1.1_2.3.zip"这个文件名暗示了一个基于Struts2的测试项目,版本可能是1.1或2.3。"strutstest"可能是指该项目的主要部分,用于演示或测试Struts2框架的功能。这个压缩包很可能包含了一个完整的Struts2...

    javaweb主流框架整合开发strutstest例子

    6. **编写JSP页面**:展示数据和接收用户输入,使用Struts标签库简化开发。 7. **部署和运行**:将项目打包成WAR文件,部署到Tomcat服务器,通过浏览器访问测试。 8. **调试和优化**:根据需求调整Action逻辑,...

    struts-test-jars

    此外,测试还可能涉及模拟环境,例如使用Mock对象来替代真实的数据库或服务,这样可以独立于外部环境进行单元测试。同时,Struts2提供了一些测试工具,如Struts2的TestNG或JUnit支持,可以帮助开发者编写和执行测试...

    Struts 1.2 如何测试ActionPDF

    - 使用StrutsTest提供的API来创建模拟的`HttpServletRequest`、`HttpServletResponse`等对象。 - 通过模拟对象来构造所需的测试场景。 3. **编写测试案例**: - 使用JUnit编写测试案例。 - 在每个测试案例中,...

    struts.jar

    struts.jar JAVA 开发常用包

    java绝对路径和相对路径

    - 例如,假设基准路径为`C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\strutsTest`,那么相对路径`web.xml`对应的绝对路径就是`C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps...

    Struts2Test.zip

    这个示例特别强调了使用JSON进行局部刷新以及集成插件,同时也包含了一个简化的数据库结构,主要目的是为了测试和理解Struts2框架的工作原理和特性。 1. **Struts2框架基础**: Struts2是Apache软件基金会的一个...

    mock struts1 测试

    为了使用StrutsTest框架,首先需要将对应的jar包添加到项目的依赖中,例如`strutstest-2.1.4.jar`。 ##### 2. 创建测试用例 下面是一个简单的示例,展示如何使用StrutsTest框架编写测试用例: ```java import org...

    struts2_spring_hibernate案例源码

    在`StrutsTest`案例中,Hibernate可能通过SessionFactory创建Session,然后使用Session来查询、插入、更新和删除数据。实体类(Entity)对应数据库表,实体类的属性与表字段对应,通过注解或XML配置文件定义映射关系...

    StrutsTestCase-2.1.4(含文档、源码、官方示例).rar

    这个压缩包“StrutsTestCase-2.1.4(含文档、源码、官方示例).rar”包含了StrutsTestCase的2.1.4版本,提供了丰富的资源来帮助用户理解和使用这个测试框架。 首先,我们来看"StrutsTestCase示例(含详细步骤)....

    ssh框架错误总结

    在使用JUnit/StrutsTest时,可能会遇到java.lang.UnsupportedClassVersionError: junit/framework/TestListener (Unsupported major.minor version 49.0)错误。 解决方法:根据JDK版本选择合适的JUnit版本。如果...

Global site tag (gtag.js) - Google Analytics