`
flyinglife
  • 浏览: 132419 次
社区版块
存档分类
最新评论

EasyMock主要是为测试提供模拟数据

    博客分类:
  • java
阅读更多
EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest。
EasyMock 可以mock interface和抽象java 类,但是不可以mock拥有被final修饰方法的类,不能mock静态方法(我遇到的情况是这样)。
在使用的时候请注意:
org.easymock.classextension.EasyMock 被用来mock抽象类(abstract)和具体类
org.easymock.EasyMock被用来mock接口(interface)

使用用EasyMock的一般步骤:
1.创建一个mock对象
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
2.设置此对象的某个方法的返回值
EasyMock.expect(request.getParameter("userName")).andReturn("trilogy").once();
注意:必须手工设置被mock的方法的访问次数
once()
antyTimes()
times(int)
建议:在设置方法调用次数的时候,虽然你可以调用anyTimes(),但是最好明确你要调用多少次如:once()、
times(2),这样做的话显的比较严谨。

如果mock的方法没有返回值,可以这么做:
request.setAttribute("userId");
EasyMock.expectLastCall().once();

对于被mock的方法参数,也可以不必指定具体的值:
EasyMock.expect(request.getParameter((String)EasyMock.anyObject())).andReturn("trilogy").once();

如果你想让被mock的方法返回一个异常,前提是被mock的方法会抛出异常,你可以这么做:
EasyMock.expect(input.read()).andThrow(new IOException("Mocked IOException")).once();

你还可以根据调用顺序来mock同一个方法:
EasyMock.expect(request.getParameter("userName")).andReturn("trilogy").once();
EasyMock.expect(request.getParameter("userName")).andReturn(null).once();
当第一次执行request.getParameter("userName")的时候,返回“trilogy”
当第二次执行request.getParameter("userName")的时候,返回null

3.保存被mock的对象
EasyMock.replay(a);

4.在被mock的对象被应用之后,最好验证一下我们所设置的mock对象是不是按我们预期运行。
EasyMock.verify(a);

总结:
EasyMock是一个相当方便的mock工具,可以为我们的测试工作提供极大的便利,特别是在测试web层或者数据库访问的时候。
在这里我只是抛砖引玉地介绍了一下EasyMock的使用,其实EasyMock还有很多其它更高级的使用,如过你愿意的话可以访问以下的网址来获得更多信息:
官网:www.easymock.org
参考文档:http://203.208.35.101/search?
q=cache:FeHb5AoQOtcJ:www.ibm.com/developerworks/cn/opensource/os-cn-
easymock/+org.easymock.classextension.EasyMock&hl=zh-CN&ct=clnk&cd=7&gl=cn&st_usg=ALhdy2-h7LnIiS-QtbTtdVRIN1oVBSsuew
ps:水平有限,难免有错,望不吝赐教,共同探讨!
分享到:
评论

相关推荐

    easymock-3.2.jar

    EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest。

    EasyMock是一个可视化并且能快速生成模拟数据的持久化服务

    EasyMock 是一款强大的JavaScript开发工具,特别针对测试领域设计,旨在提供可视化的界面以及高效地生成模拟数据的能力,以支持开发者进行快速而准确的单元测试。这个服务的目的是在实际数据库或外部API不可用或者不...

    easymock-2.5.2工具 下载

    这个工具的版本为2.5.2,提供了对Java编程语言的支持,使得开发者能够方便地创建和控制模拟对象,以测试他们的代码在特定条件下如何运行。 单元测试是软件开发过程中的一个重要环节,它允许开发者针对代码的各个...

    Learning EasyMock3.0 By Official Example

    《EasyMock 3.0 学习指南:官方示例解析》 EasyMock 是一个流行的 Java 开发工具,用于创建和使用模拟对象...结合阅读文档和动手实践,你将更好地掌握 EasyMock 3.0 的精髓,为你的 Java 开发工作带来强大的测试支持。

    EasyMock的安装与部署所需全部文件.zip

    在EasyMock的部署中,Redis可能用于存储模拟数据或作为中间件处理请求。安装Redis时,你需要下载适合Windows的二进制包,配置环境变量,并启动Redis服务。 3. **MongoDB**:MongoDB是一个流行的NoSQL数据库,用于...

    easymock-request.getParamsNames

    在单元测试领域,Easymock 是一个非常流行的模拟框架,它允许开发者在不依赖真实环境的情况下测试代码。本文将详细讲解如何使用 Easymock 对 Servlet 进行单元测试,特别是针对 `HttpServletRequest` 中获取参数的...

    Node.js-node中间层项目后端使用easymock模拟的

    综上所述,这个项目展示了如何在Node.js后端使用类似EasyMock的工具来模拟数据,支持前端开发和测试,同时体现了中间件在构建Web服务中的核心作用。理解并掌握这些技术对于高效、可靠的全栈开发至关重要。

    EasyMock线上项目迁移工具

    EasyMock是一款强大的Java模拟框架,它允许开发者创建和控制模拟对象的行为,以便于进行更精确的测试。然而,随着项目的迭代,线上环境的数据和配置可能与本地开发环境存在差异,这时就需要进行项目迁移。"EasyMock...

    轻仿即刻数据来自easymock的服务

    "轻仿即刻数据来自easymock的服务"这个项目就是利用了EasyMock这一强大的Mock数据生成平台,为开发工作提供了便捷的数据支持。EasyMock是一个开源的Java库,它允许开发者创建模拟对象来测试他们的代码,而无需实际...

    easymock详解教程

    - **stub**:主要用于提供稳定、可预测的上下文环境,适用于测试中对特定场景的模拟。 - **mock**:适用于需要验证复杂交互场景的情况,如方法调用次数、顺序等。 #### 1.3 easymock教程-单元测试中的主要测试...

    EasyMock 使用方法与原理剖析.rar

    例如,在测试服务层代码时,可以通过模拟数据访问层的对象,避免数据库操作,从而快速完成测试。 总结来说,EasyMock是Java单元测试中的有力工具,通过模拟对象的行为,我们可以编写出更健壮、更独立的测试。理解并...

    EasyMock and PowerMock入门PPT

    【EasyMock介绍】 EasyMock是一个强大的Java库,...EasyMock适用于大部分模拟需求,而PowerMock则提供更高级的功能,能够模拟那些通常难以模拟的代码片段。通过正确使用这些工具,可以确保代码质量并降低维护成本。

    junit4.4.jar +easymock3.0.jar

    将这两个库结合使用,开发者可以在进行单元测试时,利用JUnit来组织和执行测试,而使用EasyMock来模拟复杂的依赖关系,使得测试更加独立和可控。通过这种方法,开发者可以专注于测试单个方法或组件,而不必担心外部...

    Centos7-部署EasyMock.doc

    在本文中,我们将深入探讨如何在CentOS 7操作系统上部署EasyMock,这是一个流行的Java模拟框架,用于单元测试。在开始之前,确保你的系统已经更新并安装了必要的基础工具。 首先,我们需要设置Node.js环境,因为...

    生成junit测试类

    在单元测试中,有时我们不希望依赖实际的外部服务或数据,而是使用模拟对象来控制测试环境。EasyMock可以生成模拟对象,预定义它们的返回值和行为,从而专注于测试目标代码的功能。 4. PowerMock:PowerMock是一个...

    单元测试资料

    在“用easymock测试dao.txt”这个文档中,可能会涵盖以下内容: 1. **Easymock的基本用法**:介绍如何导入Easymock库,创建模拟对象,以及如何设置和验证模拟对象的行为。 2. **Mock和Stub的区别**:Mock对象会在...

    新利用驱动程序和桩程序进行单元测试

    它的作用是模拟用户或系统的行为,提供测试环境,使得我们可以控制测试的执行流程和输入数据。在Java中,通常会创建一个测试类,其中包含测试方法作为驱动程序,使用JUnit、TestNG等测试框架来编写和执行这些测试。 ...

    单元测试与 Mock 方法

    Mock方法则是单元测试中的一个重要工具,用于模拟复杂系统中的依赖关系,以便孤立地测试目标代码。在本篇文章中,我们将深入探讨单元测试与Mock方法的相关知识点。 首先,让我们理解单元测试的基本概念。单元测试是...

    测试理论--极光

    - **EasyMock**:用于创建模拟对象的框架,帮助开发者隔离外部依赖,专注于单元测试本身。 - **Eclemma/JaCoCo**:用于测量代码覆盖率,确保测试覆盖足够全面。 4. **单元测试的内容**:涵盖了接口功能测试、边界...

Global site tag (gtag.js) - Google Analytics