`
高级java工程师
  • 浏览: 404985 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

EasyMock的介绍

阅读更多
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介绍和使用

    【EasyMock介绍】 EasyMock是一款强大的Java模拟框架,它允许开发者在进行单元测试时创建和控制对象的行为。这个工具使得测试更加独立,可以隔离被测试代码与其他依赖的系统,从而提高测试的效率和质量。EasyMock的...

    EasyMock介绍及安装方法

    EasyMock 是一种模拟测试的框架,用于辅助模拟测试。当在测试过程中一些复杂的对象生成相当麻烦、费时或者根本无法生成时,可以用模拟的对象来代替真实的对象。 EasyMock 可以 mock 接口和 java 类,但是 class ...

    EasyMock介绍及安装方法含安装方法和所有需要的软件包

    EasyMock 是一个用于生成模拟对象(Mock Object)的类库,主要用于单元测试。它提供了一种简单的方法来模拟接口或类的行为,使得在测试中可以模拟真实环境中的对象。 EasyMock 的主要特点包括: 简单易用:使用 ...

    EasyMock and PowerMock入门PPT

    【EasyMock介绍】 EasyMock是一个强大的Java库,用于创建模拟对象(Mock Objects),它使得单元测试变得更加简单。在测试过程中,模拟对象可以替代真实的依赖,这样我们就可以专注于测试单个方法,而不用担心其他...

    Junit+EasyMock单元测试使用资料以及案例分析

    **EasyMock介绍** EasyMock是一个模拟对象库,它允许开发者创建模拟对象来代替依赖于其他组件的复杂对象,以便进行隔离测试。通过EasyMock,你可以预定义模拟对象的行为,如返回特定值或抛出异常,然后在测试中验证...

    easyMock

    下面将详细介绍EasyMock的相关知识点。 **1. 概念理解** - **单元测试**:单元测试是对软件中的最小可测试单元进行检查和验证,如方法或函数。EasyMock帮助编写单元测试,通过模拟对象的行为来隔离测试目标。 - *...

    EasyMock 简介

    以下是 EasyMock 的详细介绍: 单元测试与 Mock 方法 单元测试是对应用中的某一个模块的功能进行验证。在单元测试中,我们常遇到的问题是应用中其它的协同模块尚未开发完成,或 者被测试模块需要和一些不容易构造...

    easymock2.4+EasyMock使用简明手册.pdf

    下面将详细介绍EasyMock 2.4的核心概念、使用方法以及其在单元测试中的重要性。 一、EasyMock基本概念 1. **模拟对象(Mock Object)**:EasyMock允许我们创建模拟对象,这些对象可以模仿真实对象的行为,但不会...

    easymock的使用,含demo

    本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与...

    easymock3.2 (文档+源码+例子)

    7. **文档**:Easymock的文档详细介绍了如何安装、配置以及如何使用它的各种特性。这些资料对于初学者来说是非常宝贵的资源,可以帮助他们快速掌握Easymock的使用方法。 总结起来,Easymock 3.2提供了全面的功能,...

    EasyMock与Mockito 使用

    本文将详细介绍这两个工具的使用方法、原理和差异。 **EasyMock** EasyMock是一个轻量级的模拟框架,它允许开发者创建和控制模拟对象。在EasyMock中,你可以预定义模拟对象的行为,比如设置预期调用的方法和返回值...

    Easymock 3.3.1

    这份文档详细介绍了如何使用 Easymock 进行模拟和设置期望,以及如何在实际项目中进行单元测试。建议开发者参考此文档以获取更深入的理解和实践指导。 **7. 源码分析** Easymock 是开源的,其源码可供开发者研究...

    test-easymock:带有简单模拟的简单测试

    ### Easymock介绍 Easymock是一个强大的工具,允许开发者创建模拟对象来代替实际的对象,以便在单元测试中控制和验证对象的行为。这使得测试更加独立,不受实际依赖的影响,也更容易理解和调试代码。Easymock的核心...

    PowerMock\EasyMock的相关资料和文档

    `PowerMock`的文档则会详细介绍如何利用其扩展的功能进行更复杂的模拟。通过深入研究这些文档,开发者可以更好地掌握如何有效地在自己的项目中应用PowerMock和EasyMock,从而提升测试的质量和效率。

    easymock详解教程

    本教程将详细介绍easymock的基本概念、核心原理及其具体应用。 #### 1.2 easymock教程-mock和stub ##### 一、相同点 mock和stub在测试领域中都是为了实现对测试对象(通常是待测代码)与其他系统组件之间交互的...

    java easymock

    下面将详细介绍EasyMock的一些关键概念和用法。 1. **Mock和Stub**: Mock对象是模拟了特定行为的对象,用于验证方法是否被正确调用,以及它们被调用的方式。Stub则是预先定义了返回值或行为的对象,当被调用时,...

    easymock教程[归纳].pdf

    本教程详细介绍了Easymock的各种特性和使用方法,旨在帮助软件开发人员掌握这一工具。 1. **Mock和Stub的概念** - Mock对象是用于代替真实对象的虚拟对象,它在测试中按照预设的规则来响应调用,帮助验证方法是否...

    easymock window搭建资源包

    本资源包"easymock window搭建资源包"提供了在Windows环境下搭建MongoDB、NVM(Node Version Manager)和Redis的必备组件。下面将详细介绍这三个工具以及它们在开发和运维中的作用。 首先,MongoDB是一个流行的开源...

    单元测试资料

    1. **Easymock的基本用法**:介绍如何导入Easymock库,创建模拟对象,以及如何设置和验证模拟对象的行为。 2. **Mock和Stub的区别**:Mock对象会在测试后验证它被调用的方式,而Stub对象只返回预定义的值,不进行...

    Unitils教程(介绍Unitils的最佳资料)

    本教程将向您展示如何使用 Unitils 来编写单元测试,并介绍一些常见的单元测试技术。 断言应用 ---------- 在单元测试中,断言是非常重要的一部分。断言的目的是为了验证测试结果是否与预期结果相符。Unitils 提供...

Global site tag (gtag.js) - Google Analytics