本文链接:
目录

一、Easymock简单介绍

二、easymock使用准备

三、Easymock使用步骤

四、扩展-powermock

一、Easymock简单介绍
EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库;

它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以令 Mock 对象返回指定的值或抛出指定异常;

通过 EasyMock,我们可以方便的构造 Mock 对象从而使单元测试顺利进行。

二、easymock使用准备
下载所需的jar包,在maven的pom.xml加入依赖

<!--easymock-->

<dependency>

<groupId>org.easymock</groupId>

<artifactId>easymock</artifactId>

<version>3.0</version>

<scope>test</scope>

</dependency>

三、Easymock使用步骤
1、使用 EasyMock 生成 Mock 对象;
方式一:UserInfoExportService userInfoExportService = EasyMock.createMock(UserInfoExportService.class);
方式二:测试用例中使用多个 Mock 对象,可以使用如下方式
IMocksControl control = EasyMock.createControl();
UserInfoExportService userInfoExportService = createMock(UserInfoExportService.class);

2、设定 Mock 对象的预期行为和输出;
EasyMock.expect(userInfoExportService.checkPinExist(pin)).andThrow(new UserSdkExportException());

3、将 Mock 对象切换到 Replay 状态( 保存被mock的对象 );
EasyMock.replay(userInfoExportService);

4、调用 Mock 对象方法进行单元测试;
int acutal=userServiceImpl.checkPinExist(pin);
 assertEquals(3, acutal);

5、对 Mock 对象的行为进行验证( 在被mock的对象被应用之后,最好验证一下我们所设置的mock对象是不是按我们预期运行 )
EasyMock.verify(userInfoExportService);

四、扩展-powermock
powermock这个工具是在EasyMock和Mockito上扩展出来的,目的是为了解决EasyMock和Mockito不能解决的问题,比如对static, final, private方法均不能mock;

目前PowerMock 仅扩展了 EasyMock 和 mockito,需要和EasyMock或Mockito配合一起使用。

PowerMock有两个重要的注解:
在任何需要用到 PowerMock 的类开始之前,首先我们要做如下声明:
@RunWith(PowerMockRunner.class)
然后,还需要用注释的形式将需要测试的静态方法提供给 PowerMock:
@PrepareForTest( { YourClassWithEgStaticMethod.class })

注:此文在写作过程中使用的jar包版本是 powermock-easymock-junit-1.5.4.zip
 ———————————————— 
版权声明:本文为CSDN博主「Roda的博客」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42343424/article/details/81265825

Easymock十分钟入门相关推荐

  1. “易语言.飞扬”十分钟入门教程(修订版1,update for EF1.1.0)

    "易语言.飞扬"十分钟入门教程 (修订版1,update for EF1.1.0) 作者:liigo,2007.8.12 本文地址:http://blog.csdn.net/lii ...

  2. 自学python编程免费教程-Python十分钟入门 自学python基础教程送你参考

    python十分钟入门.简介Python是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. 特点 1 Pyt ...

  3. “易语言.飞扬”十分钟入门教程

    "易语言.飞扬"十分钟入门教程 作者:liigo 2007.1.1 原文链接:http://blog.csdn.net/liigo/archive/2007/01/01/14720 ...

  4. Azure IoT Hub 十分钟入门系列 (2)- 使用模拟设备发送设备到云(d2c)的消息

    本文主要分享一个案例: 10分钟- 使用Python 示例代码和SDK向IoT Hub 发送遥测消息 本文主要有如下内容: 了解C2D/D2C消息: 了解IoT Hub中Device的概念 了解并下载 ...

  5. linux pandas教程_十分钟入门 Pandas

    # 十分钟入门 Pandas 本节是帮助 Pandas 新手快速上手的简介.烹饪指南里介绍了更多实用案例. 本节以下列方式导入 Pandas 与 NumPy: In [1]: import numpy ...

  6. 【Python】【进阶篇】十二、Python爬虫的Xpath简明教程(十分钟入门)

    目录 十二.Python爬虫的Xpath简明教程(十分钟入门) 12.1 Xpath表达式 12.2 Xpath节点 12.3 节点关系 12.4 Xpath基本语法 12.4.1 基本语法使用 12 ...

  7. Azure IoT Hub 十分钟入门系列 (1)- 10分钟带你了解Azure IoT Hub 并创建IoT Hub

    建议您先对<Azure 上 IoT 整体解决方案概览 >进行了解. 本文主要分享一个案例: 10分钟-了解Azure IoT Hub并创建Azure IoT Hub 本文主要有如下内容: ...

  8. (转)十分钟入门pandas

    本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook . 习 ...

  9. Python数据分析pandas入门(一)------十分钟入门pandas

    Python数据分析基础 一.导入常用库 二.创建对象 三.查看数据 四.选取 五.通过标签选取 六.通过位置选取 七.布尔索引 八.赋值 九.缺失值处理 十.运算与统计 十一.Apply函数的作用 ...

最新文章

  1. 什么是最左匹配原则?
  2. qq浏览器打开word 技术原理_知道为什么计算机可以上网的同时,可以写word还可以听歌吗?...
  3. POSIX定时器Timer
  4. 【报告分享】百度大脑AI技术成果白皮书2018-2019.pdf
  5. sqlserver2005查询表字典
  6. 2018二月安恒月赛WRITE UP
  7. 统计字符串中含指定字符个数
  8. 计算32768晶体的负载电容,与晶体手册电容匹配
  9. js实现页面的多个日期时间倒计时效果(多个拼团)
  10. c语言转义字符c,C语言转义字符
  11. GD32450i-EVAL学习笔记 1 - 准备工作
  12. Android下拉列表显示
  13. 【目标检测】目标检测中常见的评价指标
  14. C++基础(1)- 声明(前向声明 Forward Declaration)与定义
  15. 光功率显示c语言程序,c语言程序设计 - 三电实验教学中心.doc
  16. 第6-3课:博弈树与井字棋(Tic-Tac-Toe)
  17. 翻译截图有哪些?你知道翻译截图怎样操作的
  18. 几种光纤接口(ST,SC,LC,FC)
  19. web测试bug清单
  20. Google CSE帮你多站点同时站内搜索

热门文章

  1. Adaboost算法——详细讲解
  2. ​ 每周一书《数学之美 第二版》分享!
  3. vue项目 - Mockjs 模拟后台接口数据
  4. Codeforces Global Round 7 E. Bombs(线段树)
  5. 计算机毕业设计Java企业人事管理系统(源码+系统+mysql数据库+lw文档)
  6. Git学习之解决合并冲突
  7. NaN是什么?NaN == NaN 的结果是什么?为什么?
  8. quartz配置,实时更改
  9. 非常详细的 navigationController 的使用
  10. Tekton系列之实践篇-我的第一条Pipeline