`

EasyMock应用文章收集(二)

阅读更多
easymock教程-easymock的典型使用


    关于easymock的典型使用方式,在easymock的官网文档中,有非常详尽的讲解,文档地址为 http://easymock.org/EasyMock3_0_Documentation.html,文档的开头一部分内容都是easymock中最基本的使用介绍,虽然是英文,但是非常容易看懂,适用新学者入门。

    这里只罗列一些简单的常用功能,依然以前面教程中使用到的测试案例为例:

  

public class UserServiceImplTest extends Assert {

        @Test
        public void testQuery() {
   
            User expectedUser = new User();
            user.set.;
            UserDao userDao  = Easymock.createMock(UserDao.class);
            Easymock.expect(userDao.getById("1001")).andReturn(expectedUser);
            Easymock.replay(userDao);

            UserServiceImpl  service = new UserServiceImpl();
            service.setUserDao(userDao);
            user user = service.query("1001");
            assertNotNull(user);
            assertEquals();    //veify return user

            Easymock.verify(userDao);

        }

    }



    这段简短的代码中包含以下easymock的功能:

    1. 创建mock对象
        UserDao userDao  = Easymock.createMock(UserDao.class);


    2. 记录mock对象期望的行为
         Easymock.expect(userDao.getById("1001")).andReturn(expectedUser);

         这里记录了mock对象的行为:getById()方法被调用,调用次数为1(easymock之中如果没有明确指出调用次数,默认为1),参数为"1001",expectedUser将作为返回值。


    3. 进入replay阶段
         Easymock.replay(userDao);

    4. 对mock对象执行验证
         Easymock.verify(userDao);

    对上面上面的代码稍加改动以展示easymock的其他基本功能

    1. 指定期望的调用次数

         Easymock.expect(userDao.getById("1001")).andReturn(expectedUser).times(3);

    2. 指定抛出期望的异常

         Easymock.expect(userDao.getById("1001")).andThrow(new RuntimeException("no user exist"));

    3. 记录void 方法的行为

        Easymock.expect(userDao.getById("1001")) 这样的用法只能使用与mock对象的有返回值的方法,如果mock对象的方法是void,则需要使用expectLastCall():

         userDao.someVoidMethod();
         Easymock.expectLastCall();

          和Easymock.expect(***)一样,同样支持指定调用次数,抛出异常等:

         Easymock.expectLastCall().times(3);
         Easymock.expectLastCall().andThrow(new RuntimeException("some error"));

    4. 灵活的参数匹配
         Easymock.expect(userDao.getById(Easymock.isA(String.class))).andReturn(expectedUser);

          类似的还有anyInt(),anyObject(), isNull() , same(), startsWith()等诸多实现。
分享到:
评论

相关推荐

    EasyMock

    EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以模拟复杂的交互场景。这个框架的出现,极大地简化了对那些难以或无法直接实例化的类的测试,比如接口或者静态方法。EasyMock...

    easyMock

    EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以模拟复杂的依赖关系。这个框架的出现使得测试更加简洁、独立,可以有效地验证代码的正确性,而无需运行实际的依赖服务或库。...

    easymock.jar,easymockclassextension.jar

    Easymock是一个流行的Java单元测试框架,它允许开发者创建模拟对象来测试代码。这个框架使得测试更加简单,因为你可以模拟任何复杂的交互和行为,而无需实际运行依赖的组件。在给定的压缩包文件中,包含两个核心的...

    EasyMock 简介

    EasyMock 简介 EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库,旨在解决单元测试中的 Mock 对象构建问题。以下是 EasyMock 的详细介绍: 单元测试与 Mock 方法 单元测试是对应用中的某一...

    easymock-3.2.zip

    3. **示例文档**:这些示例通常是一些简单的代码片段,展示了如何在实际项目中应用EasyMock。它们可以作为起点,帮助初学者快速上手。 4. **所需jar包**:这是EasyMock运行所需的库文件。在Java项目中,你需要将...

    easymock

    标题中的“easymock”是指一个开源的Java模拟框架,它允许开发人员在测试时创建模拟对象,以便于隔离被测试代码并确保其独立于其他依赖。EasyMock提供了简单的API来定义对象的行为,比如期望调用的方法和返回值,这...

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

    在EasyMock的场景下,MongoDB可能用于存储测试数据或应用程序配置。安装MongoDB涉及下载安装程序,创建数据库目录,然后启动数据库服务。 4. **EasyMock源码**:EasyMock的源代码是核心部分,包含模拟对象的定义和...

    easymock-3.2.jar

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

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

    二、EasyMock 2.4关键特性 1. **扩展性**:EasyMock 2.4支持对接口的模拟,而非具体类,这使得模拟更加灵活,因为我们可以针对任何实现了接口的对象进行模拟。 2. **记录和回放**:EasyMock提供了"记录-回放"模式...

    EasyMock介绍和使用

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

    EasyMock 实例

    EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以模拟复杂的系统交互。这个框架的使用可以极大地提高测试的效率和覆盖率,因为它使得测试代码可以独立于实际的依赖进行执行。 ...

    EasyMock单元测试例子

    这个"EasyMock单元测试例子"提供了几个示例,帮助我们更好地理解和应用EasyMock。 EasyMock的基本概念: 1. **模拟对象(Mock Object)**:在单元测试中,我们可能不希望依赖实际的外部服务或数据库。模拟对象可以...

    easymock资料和源代码实例

    下面我们将详细探讨Easymock的基本概念、工作原理以及如何通过源代码实例进行应用。 **Easymock基本概念** 1. **模拟对象(Mock Objects)**:在单元测试中,模拟对象是代替真实对象的替代品,它们根据预设的行为...

    easymock的使用,含demo

    Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。 编写自定义的 Mock 对象需要额外的编码工作,同时也可能引入错误。...

    模拟测试辅助工具easyMock.zip

    Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。 编 写自定义的 Mock 对象需要额外的编码工作,同时也可能引入错误...

    Learning EasyMock3.0 By Official Example

    通过学习官方示例,开发者不仅能学会如何创建和管理模拟对象,还能了解如何在实际项目中有效地应用这些技术,提升单元测试的质量和效率。结合阅读文档和动手实践,你将更好地掌握 EasyMock 3.0 的精髓,为你的 Java ...

    easymock.jar包

    本文将深入探讨easymock.jar及其在单元测试中的应用。 首先,我们需要了解什么是Easymock。Easymock是一个开源项目,它的主要目标是提供一种简单的方式来创建和控制模拟对象。通过模拟对象,我们可以在不依赖实际...

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

    6. **示例**:压缩包中的示例提供了使用Easymock的实际代码,通过学习这些例子,你可以快速上手Easymock,并将它应用到自己的项目中。 7. **文档**:Easymock的文档详细介绍了如何安装、配置以及如何使用它的各种...

Global site tag (gtag.js) - Google Analytics