动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Tomcat性能调整.
.利用Java调用可执行命令实例.
.图解JDeveloper 10g快速开发会话.
.(转)使用 Eclipse 作为 Jakarta .
.用 Eclipse 插件提高代码质量.
.漫谈EJB对面向对象设计的影响.
.Java学习之开始使用神奇的i=i++.
.Java中this、super用法简谈.
.专家访谈: WebSphere Commerce.
.J2ME的无线消息传递概述与应用程.
.将数字字符串转换成大写金额字符.
.跟你分享——.Net项目制作安装程.
.Eclipse 插件功能研究.
.SubFolders 属性.
.安装SJD节省软件开支.
.Java I/O API之性能分析 (下).
.在Java中实现回调过程.
.Struts源码的切片学习之Struts的.
.Robocode 高手的秘诀:躲避子弹.
.企业应用的Web服务安全技术:框架.

Struts测试框架StrutsTestCase实战

发表日期:2008-1-5 |



  阅读提要 StrutsTestCase是一个强有力的易于使用的针对Struts行为的测试框架。StrutsTestCase,并与传统型JUnit测试相结合,将会带给你一个相当高的测试覆盖率并提高你的产品的可靠性。

  一、引言

  StrutsTestCase是一个用于测试Struts行为的基于Junit的测试框架。假如你使用Struts,那么你会注重到它可以提供给你一种轻易而有效的方式来测试你的应用程序的Struts行为类。

  典型的J2EE应用程序都是分层构建的,如图1所示。

  ·DAO层封装了数据库存取。Hibernate映射和对象类,Hibernate查询,实体EJBs,或一些其它的实体-关系持续性技术都可以在这一层找到。

  ·商业层包含更高级的商业服务。理想地,这个商业层将是相对独立于数据库实现。在这个层上经常使用会话EJBs。

  ·描述层包含为用户显示应用程序数据并解释用户请求。在一个Struts应用程序中,这一层典型地使用jsp/JSTL页面来显示数据并且使用Struts行为来解释用户查询。

  ·客户层基本上是运行于用户机器上的web浏览器。客户端逻辑(例如,javascript)有时被放在这里,尽管很难对其进行有效地测试。

Struts测试框架StrutsTestCase实战
图1.典型的J2EE架构

  DAO和商业层的测试或者可以通过使用经典的JUnit测试或者使用各种JUnit扩展来进行,具体依靠于架构的实现细节。DbUnit是一种用来进行数据库单元测试的良好选择。

  另一方面,测试Struts行为总是很困难的事情。即使在商业层严格地限制于商业层的构建时,Struts行为也总要包含重要数据校验,转换和流程控制代码。不对Struts行为进行测试将会在代码覆盖率上留下一道很脏的鸿沟。StrutsTestCase会让你填充这条鸿沟。

  对行为层进行单元测试还带来其它一些益处:

  ·可以更好地规划视图和控制层,从而使之更为简单清楚。

  ·更轻易重构行为类。

  ·避免冗余的未使用的行为类。

  ·测试实例有助于对行为层进行归档-这在创建屏幕时是很有用的。

  上面是基于测试开发的典型好处,并且它们可以应用于在各种情况下使用的Struts行为层。

  二、StrutsTestCase简介

  StrutsTestCase工程提供了一种灵活又方便的方法来从JUnit框架内测试Struts行为。它能够使你对你的Struts行为进行白色盒子测试-通过在调用行为后建立请求参数并检查结果Request或Session的状态。

  StrutsTestCase答应或者是一个模拟测试方式-这时框架模拟web服务器容器,或者是一个容器内方式-这时使用Cactus框架来从服务器容器(例如Tomcat)内部运行测试。一般地,我比较喜欢模拟测试方式,因为它更为轻量级的且运行更快些,并因此答应较宽松的开发周期。
所有的StrutsTestCase单元测试类或者派生于MockStrutsTestCase以进行模拟测试,或者派生于CactusStrutsTestCase以进行容器内测试。在此我们先讨论模拟测试,因为它要求较少的配置并且运行较快些。

  三、实战StrutsTestCase

  为了使用StrutsTestCase来测试这个行为,我们创建一个扩展类MockStrutsTestCase的新类。这个类提供一系列方法来构建一个模拟的HTTP请求,调用相应的Struts行为以及一旦在行为完成时校验应用程序状态。

  可以设想有一个在线的具有多条件查找功能的住所数据库。这个查找函数是通过/search.do行为实现的。这个行为将基于指定的条件完成一次多条件查找,并把结果列表放置在一个称为results的请求范围属性中。例如,下列URL应该显示一个在法国的所有的住所结果列表:
/search.do?country=FR

  现在,假定我们想要使用一个测试驱动的方式来实现这个方法。我们创建该行为类并更新Struts配置文件。我们还编制测试实例来测试(空的)这个行为类。通过使用一种严格的测试驱动的开发方法,我们可以首先创建测试实例,然后实现代码来匹配该测试实例。在实践中,具体的顺序可能因要测试的代码而有所不同。

  起始的测试情形看去如下样子:

public void testSearchByCountry() {
 setRequestPathInfo("/search.do");
 addRequestParameter("country", "FR");
 actionPerform();
}
  在此,我们建立要调用的路径(setRequestPathInfo())并且添加一请求参数(addRequestParameter())。然后,我们用actionPerform()来调用行为类。这将验证Struts配置并且调用相应的行动类,但是将不测试该行为的实际所做。为此,我们需要验证行动的结果。


上一篇:Web框架对比: Wicket vs Struts 人气:513
下一篇:用StrutsTestCase测试Struts应用程序 人气:505
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-21 Nucleus v3.33 多国语言版
2008-8-21 HDWiki v4.0 bulid 080821 UTF-8
2008-8-21 明科在线客服系统 v6.0
2008-8-21 KesionCMS v5.0.2 正式版 utf-8
2008-8-21 KesionEshop v5.0.2 正式版 utf-8
2008-8-21 HDWiki v4.0 bulid 080821 GBK
2008-8-21 新文互动酷站展示系统 v1.5
2008-8-21 Punbb v1.2.20 多国语言版
2008-8-21 QQ头像网 beta
2008-8-16 iLaba Player(小喇叭播放器) v2.
2008-8-16 DoubleClickFix 鼠标双击修正工具
2008-8-16 CrystalCPUID 4.15.2.451
2008-8-16 VeryCD 电驴(easyMule) 1.0.4 Bu
2008-8-16 uTorrent 1.8 Build 11813 - Sta
2008-8-16 比特精灵(BitSpirit) v3.3.2.287
2008-8-16 StayInTune音叉 v1.0 破解版
2008-8-16 iChing《周易》汉化补丁 v1.0
2008-8-16 Starmap星空图v1.0汉化破解版
  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号