使用MockEJB简化EJB测试

MockEJB框架允许开发人员在不部署到容器的情况下对EJB进行单元测试,提高了开发效率和测试覆盖率。它实现了EJB接口的模仿对象,支持EJB的容器外测试,包括自动配置bean环境、内存中的JNDI和JMS提供程序,以及对其他EJB操作的调用。本文展示了如何使用MockEJB进行EJB测试,并提供了示例代码。
摘要由CSDN通过智能技术生成

可以自己下载,看doc文档

Enterprise JavaBean (EJB)是J2EE应用程序中的重要构件块,它为开发人员提供了一个支持服务定义、事件驱动处理和对象-关系持久性的标准框架。但是,使用EJB的开发 人员经常抱怨,EJB的使用使得应用程序的单元测试变得愈加复杂了。EJB依赖于容器的服务来运行,但是在对bean进行单元测试前将其部署到容器会减慢 这个过程,并使调试更为复杂。而最近测试驱动开发的流行又使这个问题加剧,这主要是由于其编写测试、编写生产代码以及这种方法所包含的重构所组成的快速周 期。

  本文介绍了一种框架,MockEJB,它通过允许在EJB容器内部或外部测试EJB,从而为EJB的测试问题提供了一种可能的解决方案。构建于 现有的模仿对象(mock object)技术上的MockEJB允许开发人员在将EJB部署到容器进行集成测试之前,像对(EJB容器外的)普通Java对象那样,对EJB进行开 发和单元测试。在容器中,您可以使用MockEJB,通过控制bean的环境并允许模拟意外条件来对EJB进行充分测试。MockEJB的使用既使开发人 员的生活变得轻松,又使他们的生产力更高,还有助于实现比通常情况下更全面的测试覆盖范围。

EJB测试面临的挑战
  Enterprise JavaBean (EJB)是许多大型J2EE应用程序中的重要构件块,它还被用于定义打包服务及其接口(使用会话bean)、创建事件处理程序(使用消息驱动 bean),有时候还用来提供持久性机制(通过实体bean)。EJB的许多功能和优点来自于EJB容器所提供的标准化的运行时环境和服务,包括自动化的 线程和内存管理、事务管理以及声明式安全性。但是,因为对容器的依赖性,EJB不能在容器外运行,所以当对EJB组件进行单元测试时,这个强大的运行时环 境也存在一些问题。我们如何能够轻松地对由一个应用服务器所提供的、运行在EJB容器内的东西进行单元测试呢?

  针对EJB的测试问题,人们提出了很多方法,从支持基本的容器外单元测试的简单EJB基类,到复杂的测试框架,比如Cactus(参见补充阅读一节),从而使得对运行在容器内的EJB进行单元测试成为可能。最近,作为对环境需求复杂的代码进行单元测试的一个可选方案,又出现了“模仿对象”方法,而MockEJB正是这种思想的特定于EJB开发的实现。

测试驱动开发和模仿对象
  在介绍MockEJB的细节之前,有必要先说明一下为它提供基础的思想和技术。

  测试驱动开发(TDD)是一种软件开发(而不是测试)方法,它将单元测试置于过程的中心地位。与编写大量代码、然后在允许的时间范围内进行尽可能多的单元测试的传统方式不同,TDD完全颠覆了这个过程,它为实现成功的测试而编写代码。其过程是高度可迭代的,包括一个快速周期:编写测试,然后编写 使测试成功所需的代码,最后重构以改进设计——如果新代码显示设计还不是最优的话。TDD的基本规则是,编写尽可能多的测试,所有的单元测试都是自动进行的,所有的测试都必须始终可以通过。补充阅读一节有TDD更多相关信息的链接。

  虽然其思想非常简单,但是人们发现,在实践中TDD令人难以置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值