用Cactus来测试J2ee应用(一).pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用Cactus 来测试J2ee 应用 Junit 是当前最流行的测试框架,它能够让开发人员很方便的编写测试单元,可以使他 们放心地开发。但是现在很多的应用都是基于j2ee 的,代码都是在服务器端的容器里面 运行,这个使测试带来了一些麻烦。对于普通的jsp,servlet 用 Junit 来测试好像已经不是那 么方便,对于 EJB 来说,特别是 2.0 版本,很多接口都是 Local Interface ,没有办法进行分 布式的测试。那么我们如何进行这些代码的测试呢?Apache 为我们提供了一个强大的工具 Cactus !它是一套简单,易于使用的服务器端测试框架,可以使开发人员很轻松的测试服务 器端的程序,他们会说:哦,就是这么简单。Cactus 是 Junit 的一个扩展,但是它又和Junit 有一些不同。Cactus 的测试分为三种不同的测试类别, JspTestCase,ServletTestCase,FilterTestCase,而不是像 Junit 就一种 TestCase 。Cactus 的测试代 码有服务器端和客户端两个部分,他们协同工作。那我们为什么不用 Junit 来做测试呢?主 要有一下几个理由: EJB2.0 中的Local interface ,不允讯远程调用。用 Junit 不好测试,而 Cactus 的redirector 位于服务器端,可以和 EJB 运行在一个容器中,这使得它可以直接访问 Local Interface 。 一般 EJB 或者 servlet,jsp 都是运行在服务器上,如果你使用junit 测试的话,你的测试 是在客户端,这使的运行环境和测试环境处于不同的系统环境中,这个有时候会不同的测 试结果。 在一个 EJB 的应用中,一般都会有一些前端应用来访问 EJB ,例如:jsp,servlet,javabean。 这就意味着你需要一个测试框架来测试这些前端的组件。Cactus 提供了所有这些组件的测 试方法。哦,太棒了。 Cactus 和 ant 很好的结合在一起,可以很容易的完成自动化测试,减少了很多工作量。 当然,junit 也提供这样的支持。 前面是对 Cactus 作了一个大致的介绍,接下来我们用一个实际的例子来运用一下这个 强大的测试框架。首先我们需要一个被测试的对象,在这里我们选用 EJB2.0 CMP.我们做一 个简单的用户管理。一下就一些主要的代码,来进行一些分析。 UserHome.java package usersystem; import javax.ejb.*; import java.util.*; public interface UserHome extends javax.ejb.EJBLocalHome { public User create(String name, String password) throws CreateException; public Collection findAll() throws FinderException; public User findByPrimaryKey(String name) throws FinderException; } User.java package usersystem; import javax.ejb.*; import java.util.*; public interface User extends javax.ejb.EJBLocalObject { public String getName(); public void setPassword(String password); public String getPassword(); public void setUserInfo(UserInfo userInfo); public UserInfo getUserInfo(); public void setName(String name); } UserInfoHome.java package usersystem; import javax.ejb.*; import java.util.*; public interface UserInfoHome extends javax.ejb.EJB

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档