- 浏览: 302724 次
- 性别:
- 来自: 南昌
文章分类
最新评论
-
秋风扫落叶:
不错,学习了。shadow文件中记录的格式是什么?
/etc/passwd & /etc/shadow 详解 -
key232323:
重拾jstl——写得很好。我收藏下。
JSTL标签用法 -
zxl10059:
不错,非常简明扼要
Hibernate分页 -
Batmankwok:
很好,所见略同,
自定义组件MXML和as两种实现的方式和区别 -
Dxx23:
摘话回帖!
通过response对象的sendRedirec ...
response.sendRedirect方式的转向与RequestDispatcher的forward方法的比较
在开发J2EE Web项目时,测试过程常涉及到代码与Web Container的整合测试。测试过程通常分为:开发、部署、测试、修改四个环节。其中部署环节繁琐,大大降低了测试效率。
这里介绍使用Cactus+Jetty的测试方法,以期缩短部署环节,提高整体测试及开发效率。本文内容建构于Vincent Massol的《JUnit In Action》(Manning 2004)、网友Blog以及自己的实践。
Cactus 是Apache 基金会的开源项目之一,是JUnit测试在Web 应用方面的扩展。其官方文档称其功能可以涵盖主要的三类测试框架,包括:单元逻辑测试、整合单元测试及功能单元测试,其主要用途集中与J2EE环境下的整合单元测试(见:http://jakarta.apache.org/cactus/)。
使用过Eclipse的朋友一定体验过在Eclipse环境下使用JUnit的方便。Cactus是对JUnit的扩展,在Eclipse环境下的界面和JUnit框架一致,所以如果你熟悉JUnit界面,使用Cactus也很容易。
Jetty是一款纯Java开发的Web 应用服务器,这点和tomcat相似。但Jetty比tomcat使用更方便,可以嵌入代码中,以编程式的方式手动启动。这就免去了使用者手工启动Web服务的麻烦,为全自动测试提供了基础(关于Jetty 可从http://docs.codehaus.org/display/JETTY
获取更详细的信息)。
现在开始测试框架的搭建。
一.创建测试项目
首先打开Eclipse,创建一个新的Web项目。如果存在已有的Web项目,步骤也大致相同。
为了首先测试代码与业务代码的分离,我的项目接受了JUnit In Action中的建议,采用“分离但等同”的目录结构,既测试类和被测试代码在同一个包内,却分到不同的目录中。这样做的好处在于,如果项目开发完成,可以很快的从项目中分离测试代码,加快发布速度。
在这里,我创建了一个新的Source Folder test来存放测试类文件,系统自建的src目录存放被测试代码。
另外,为了能够使用Cactus及Jetty框架,需要将相应的库文件导入项目的库中。具体步骤如下:
1. 导入以下jar包:
junit-3.8.1.jar (JUint 类库)
aspectjrt-1.2.1.jar
cactus-1.7.2.jar (Cactus 主要类库)
commons-httpclient-2.0.2.jar
commons-logging-1.0.4.jar
org.mortbay.jetty-4.2.17.jar (Jetty 的主要类库,建议使用cactus提供的,笔者曾经尝试过最新的Jetty 6.1 但没有整合成功)
servletapi-2.3.jar (支持 J2EE Servlet 库文件)
到项目的WEB-INF/lib/下。
注意,根据所使用版本Cactus及JUnit的版本不同,文件命会有相应的不同。
2. 在Eclipse中刷新项目。
具体生成后的目录结构如下:
二.创建Servlet类及测试类
1.在src/defaultpackage中,创建被测试的servlet类SampleServlet:
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
public class SampleServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void saveToSession(HttpServletRequest request) {
String testparam = request.getParameter("testparam");
request.getSession().setAttribute("testAttribute", testparam);
}
}
2. 在test/defaultpackage中,创建测试类ServletTestCase:
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
import org.apache.cactus.extension.jetty.JettyTestSetup;
public class TestSampleServlet extends ServletTestCase {
public TestSampleServlet(String theName) {
super(theName);
}
public static Test suite() {
System.setProperty("cactus.contextURL",
"http://localhost:8081/Cactus");
TestSuite suite = new TestSuite();
suite.addTestSuite(TestSampleServlet.class);
return new JettyTestSetup(suite);
}
public void beginSaveToSessionOK(WebRequest webRequest) {
webRequest.addParameter("testparam", "it works!");
}
public void testSaveToSessionOK() {
SampleServlet servlet = new SampleServlet();
servlet.saveToSession(request);
assertEquals("it works!", session.getAttribute("testAttribute"));
}
}
注意其中“System.setProperty("cactus.contextURL", "http://localhost:8081/Cactus");”语句,该语句设置了Cactus启动Jetty服务器时,jetty服务器所开设服务的URL。这个值就是web服务供外界访问的URL地址。另外,这个值也可以通过Eclipse设置JUnit启动参数的方法设置,在此不再赘述。
三.测试
在Eclipse中运行JUnit。
查看输出结果:
及输出日志:
好了,这个简单的例子就讲到这里。随着对Web测试研究的深入,我会发布更多的文章和大家一起探讨。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/james_wu_shanghai/archive/2008/03/11/2167503.aspx
发表评论
-
web.xml tomcat 和jetty 区别
2010-09-07 09:31 2136因为使用GWT,所以测试的时候是在jetty上运行的,但是最后 ... -
单元测试之实践四 Action的测试
2010-08-30 10:14 843Action的测试是比较辛苦的。因为它依赖与其他的环境(比如t ... -
单元测试之实践三 Service的测试
2010-08-30 10:13 959测试Service,因为Service依赖的Dao, 所以只需 ... -
单元测试之实践二,关于DAO的测试
2010-08-30 10:12 937前阵子发表过 我的第一个真正意义上的测试 。里面对于测试S ... -
Mockito特点
2010-08-30 10:02 10681. 只能使用jdk1.5以上,因为它的方便是用jdk1.5的 ... -
HttpUnit进行Web测试
2010-08-30 00:06 1664简介:HttpUnit是基于JUnit ... -
关于单元测试的一些看法
2010-08-28 14:26 884从参加工作以来,参加 ... -
用cactus,jetty实现对servlet类进行单元测试三(完)
2010-08-28 11:39 1101OK,可以开始写测试类了,代码为: pa ... -
用cactus,jetty实现对servlet类进行单元测试二
2010-08-28 11:37 1351按照官网的定义,我们就可以用MILY: 'Arial','sa ... -
用cactus,jetty实现对servlet类进行单元测试一
2010-08-28 11:35 1355JUnit是名声大燥了,想必只要学过JAVA的人都知道世上有个 ... -
相关测试工具下载
2010-08-26 17:21 1434相关测试工具下载 HP-Mercury软件测试工具下载,随时 ... -
单元测试实践小结
2010-08-26 16:40 606在系统开发过程种使用单元测试,会带来很多的的好处,最明显为: ... -
软件测试杂录
2010-08-26 14:41 1081比较杂,有空再整理一 ... -
J2EE单元测试
2010-08-26 11:06 1040一、测试原则 Java ... -
利用httpunit测试servlet
2010-08-26 10:33 2002传统的Java WEB应用中,核心技术莫过于Servlet类与 ... -
使用 EasyMock 更轻松地进行测试
2010-08-25 14:40 982测试驱动开发是软件开发的重要部分。如果代码不进行测试,就是不可 ... -
Cactus工作原理
2010-08-24 09:52 984Cactus 是Jakarta的子项目 ... -
Cactus实例讲解
2010-08-23 17:08 900Cactus简介 . 简介 Cactus实现了对JUni ... -
flex和java的通信
2010-08-17 15:35 715一、准备: 服务端:J ... -
Flash 聊天室
2010-08-17 11:39 964今天我们来制作 Flash 聊天室,学习使用 Socket 类 ...
相关推荐
通过Ant Cactus DbUnit StrutsTest测试组件对一个简单应用程序进行全面的测试
通过Ant Cactus DbUnit StrutsTest测试组件对一个简单应用程序进行全面的测试
通过Ant Cactus DbUnit StrutsTest测试组件对一个简单应用程序进行全面的测试
Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等
org.apache.cactus.eclipse.runner-1.8.0.jar
CACTUS
基于Cactus的JSP页面测试及代码自动生成器,张震,杨正球,单元测试的自动化越来越受到软件开发企业的重视,但J2EE应用程序实现单元测试自动化却存在一定困难。本文指出原有的测试框架应用��
cactus-1.8.1-bin.zip 对java web 进行单元测试
The Extreme Programming (XP) methodology enables you to build and test ...How to harness plugins for JUnit, Cactus, and Ant in the Eclipse IDE Ways to implement Extreme Programming best practices
The Extreme Programming (XP) methodology enables you to build and test ...How to harness plugins for JUnit, Cactus, and Ant in the Eclipse IDE Ways to implement Extreme Programming best practices
The Extreme Programming (XP) methodology enables you to build and test ...How to harness plugins for JUnit, Cactus, and Ant in the Eclipse IDE Ways to implement Extreme Programming best practices
The Extreme Programming (XP) methodology enables you to build and test ...How to harness plugins for JUnit, Cactus, and Ant in the Eclipse IDE Ways to implement Extreme Programming best practices
The Cactus project is pleased to announce the release of version 1.7.2. Cactus is a unit testing framework for testing server side java code.
cactus-report.xsl cactus-report.xsl cactus-report.xsl
个人作品 6-Cactus.rar 需要的同学可以看看
jakarta-cactus-12-1.7.1.rar
有向cactus判定的证明,一个有向图是有向Cactus的三个充要条件。
NULL 博文链接:https://whythiszhao.iteye.com/blog/966494
请vs2013打开或者2015,用了.net4.5.2 ,Cactus1.5.x
Cactus:设计师设计的静态站点生成器。使用Python和Django模板。