StrutsTest使用简明手册

原创 2004年06月27日 18:51:00
      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

python简明教程-第十章解决问题-备份文件

需求: 输入需要备份的文件的目录,以及备份文件的存储路径,将备份文件压缩并以日期和时间存档 # --coding:utf-8-- import os import timesource = r'C:\...
  • u010274840
  • u010274840
  • 2016年06月28日 19:49
  • 207

Go语言简明教程

Go语言简明教程
  • muxxpkq
  • muxxpkq
  • 2016年12月05日 10:44
  • 313

Radasm使用简明手册(中文版)

操作方面: 一、书签: SHIFT+F8为所在行下书签或删除书签(Crtl+0-9能定义存于文件中的10个书签),可通过编辑\书签\开关书签。(CRTL+F8为下一书签,F8为上一书签)二、列选择:...
  • a949308398
  • a949308398
  • 2014年11月12日 20:43
  • 341

Python学习之路(Win7)之简明python教程

遇到Python是因为opencv3.1的dnn的训练部分要用到caffe,而caffe配置中有一个就是需要Python,因为google下的caffe读的数据是leveldb或lmdb,所以如果是一...
  • wd1603926823
  • wd1603926823
  • 2016年06月29日 23:04
  • 2947

简明Python教程笔记一 python3.x

《简明python教程》此教程用的是python 2.x与 python 3.x有些差异。 python有高效率的高层数据结构,面向对象。语法简洁,是门解释型脚本语言,适合应用程序的快速开发。 pyt...
  • Binbin_IT
  • Binbin_IT
  • 2017年10月24日 16:44
  • 153

Vim进阶简明手册

vim的学习曲线相当的大,下图是几个经典的文本编辑器的学习曲线,不排除其中有调侃和幽默的味道。 主流编辑器学习曲线图 注1:Pico(PIne COmposer)是Unix操作系统中最常见的三种文字处...
  • sinat_34586770
  • sinat_34586770
  • 2016年11月23日 15:35
  • 80

机器学习简明手册

机器学习简明手册 面向读者:有一定机器学习基础的。不是新手入门手册。实用导向的,所以不会扣细节和具体式子,只给出算法idea。能当作复习提纲,或者学习的roadmap吧。参考资料主要有《机器学习实...
  • Dinosoft
  • Dinosoft
  • 2015年09月26日 19:12
  • 2124

正则表达式简明手册

一、 元字符 字符 说明 ^ 一行开始 $ 一行结束 ...
  • china_jeffery
  • china_jeffery
  • 2017年11月03日 16:23
  • 31667

Markdown 简明语法手册

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。...
  • ljss321
  • ljss321
  • 2016年04月09日 21:33
  • 239

Python 绝对简明手册

简述 1. 阅读须知 文中使用 >>> 作为会命令行中的输出信息的前缀 对于不清楚用用途的函数可以在解释器下面输入 help(函数名) 来获取相关信息 ...
  • Relaxing
  • Relaxing
  • 2013年04月03日 18:27
  • 994
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:StrutsTest使用简明手册
举报原因:
原因补充:

(最多只允许输入30个字)