软件测试之EasyMock 使用方法与原理剖析_第1页
软件测试之EasyMock 使用方法与原理剖析_第2页
软件测试之EasyMock 使用方法与原理剖析_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页软件测试之EasyMock使用方法与原理剖析软件测试之EasyMock使用方法与原理剖析

发表于:2023-04-08来源::点击数:标签:软件测试EasyMock剖析原理

EasyMock是一套通过简单的方法对于指定的接口或类生成Mock对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对EasyMock的功能和原理进行介绍,并通过示例来说明如何使用EasyMock进行单元测试。Mock方法是单元测试中常见的一种技术,它

EasyMock是一套通过简单的方法对于指定的接口或类生成Mock对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对EasyMock的功能和原理进行介绍,并通过示例来说明如何使用EasyMock进行单元测试。Mock方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。

编写自定义的Mock对象需要额外的编码工作,同时也可能引入错误。EasyMock提供了根据指定接口动态构建Mock对象的方法,避免了手工编写Mock对象。本文将向您展示如何使用EasyMock进行单元测试,并对EasyMock的原理进行分析。

1.Mock对象与EasyMock简介

单元测试与Mock方法

单元测试是对应用中的某一个模块的功能进行验证。在单元测试中,我们常遇到的问题是应用中其它的协同模块尚未开发完成,或者被测试模块需要和一些不容易构造、比较复杂的对象进行交互。另外,由于不能肯定其它模块的正确性,我们也无法确定测试中发现的问题是由哪个模块引起的。

Mock对象能够模拟其它协同模块的行为,被测试模块通过与Mock对象协作,可以获得一个孤立的测试环境。此外,使用Mock对象还可以模拟在应用中不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)和比较复杂的对象(如JDBC中的ResultSet对象),从而使测试顺利进行。

EasyMock简介

手动的构造Mock对象会给开发人员带来额外的编码量,而且这些为创建Mock对象而编写的代码很有可能引入错误。目前,有许多开源项目对动态构建Mock对象提供了支持,这些项目能够根据现有的接口或类动态生成,这样不仅能避免额外的编码工作,同时也降低了引入错误的可能。

EasyMock是一套用于通过简单的方法对于给定的接口生成Mock对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令Mock对象返回指定的值或抛出指定异常。通过EasyMock,我们可以方便的构造Mock对象从而使单元测试顺利进行。

安装EasyMock

EasyMock是采用MITlicense的一个开源项目,您可以在Sourceforge上下载到相关的zip文件。目前您可以下载的EasyMock最新版本是2.3,它需要运行在Java5.0平台上。如果您的应用运行在Java1.3或1.4平台上,您可以选择EasyMock1.2。在解压缩zip包后,您可以找到easymock.jar这个文件。如果您使用Eclipse作为IDE,把easymock.jar添加到项目的Libraries里就可以使用了(如下图所示)。此外,由于我们的测试用例运行在JUnit环境中,因此您还需要JUnit.jar(版本3.8.1以上)。

图1:Eclipse项目中的Libraries

2.使用EasyMock进行单元测试

通过EasyMock,我们可以为指定的接口动态的创建Mock对象,并利用Mock对象来模拟协同模块或是领域对象,从而使单元测试顺利进行。这个过程大致可以划分为以下几个步骤:

使用EasyMock生成Mock对象;设定Mock对象的预期行为和输出;将Mock对象切换到Replay状态;调用Mock对象方法进行单元测试;对Mock对象的行为进行验证。接下来,我们将对以上的几个步骤逐一进行说明。除了以上的基本步骤外,Easy

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论