Easymock十分钟入门
本文链接:
目录
一、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,update for EF1.1.0)
"易语言.飞扬"十分钟入门教程 (修订版1,update for EF1.1.0) 作者:liigo,2007.8.12 本文地址:http://blog.csdn.net/lii ...
- 自学python编程免费教程-Python十分钟入门 自学python基础教程送你参考
python十分钟入门.简介Python是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. 特点 1 Pyt ...
- “易语言.飞扬”十分钟入门教程
"易语言.飞扬"十分钟入门教程 作者:liigo 2007.1.1 原文链接:http://blog.csdn.net/liigo/archive/2007/01/01/14720 ...
- Azure IoT Hub 十分钟入门系列 (2)- 使用模拟设备发送设备到云(d2c)的消息
本文主要分享一个案例: 10分钟- 使用Python 示例代码和SDK向IoT Hub 发送遥测消息 本文主要有如下内容: 了解C2D/D2C消息: 了解IoT Hub中Device的概念 了解并下载 ...
- linux pandas教程_十分钟入门 Pandas
# 十分钟入门 Pandas 本节是帮助 Pandas 新手快速上手的简介.烹饪指南里介绍了更多实用案例. 本节以下列方式导入 Pandas 与 NumPy: In [1]: import numpy ...
- 【Python】【进阶篇】十二、Python爬虫的Xpath简明教程(十分钟入门)
目录 十二.Python爬虫的Xpath简明教程(十分钟入门) 12.1 Xpath表达式 12.2 Xpath节点 12.3 节点关系 12.4 Xpath基本语法 12.4.1 基本语法使用 12 ...
- Azure IoT Hub 十分钟入门系列 (1)- 10分钟带你了解Azure IoT Hub 并创建IoT Hub
建议您先对<Azure 上 IoT 整体解决方案概览 >进行了解. 本文主要分享一个案例: 10分钟-了解Azure IoT Hub并创建Azure IoT Hub 本文主要有如下内容: ...
- (转)十分钟入门pandas
本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook . 习 ...
- Python数据分析pandas入门(一)------十分钟入门pandas
Python数据分析基础 一.导入常用库 二.创建对象 三.查看数据 四.选取 五.通过标签选取 六.通过位置选取 七.布尔索引 八.赋值 九.缺失值处理 十.运算与统计 十一.Apply函数的作用 ...
最新文章
- 什么是最左匹配原则?
- qq浏览器打开word 技术原理_知道为什么计算机可以上网的同时,可以写word还可以听歌吗?...
- POSIX定时器Timer
- 【报告分享】百度大脑AI技术成果白皮书2018-2019.pdf
- sqlserver2005查询表字典
- 2018二月安恒月赛WRITE UP
- 统计字符串中含指定字符个数
- 计算32768晶体的负载电容,与晶体手册电容匹配
- js实现页面的多个日期时间倒计时效果(多个拼团)
- c语言转义字符c,C语言转义字符
- GD32450i-EVAL学习笔记 1 - 准备工作
- Android下拉列表显示
- 【目标检测】目标检测中常见的评价指标
- C++基础(1)- 声明(前向声明 Forward Declaration)与定义
- 光功率显示c语言程序,c语言程序设计 - 三电实验教学中心.doc
- 第6-3课:博弈树与井字棋(Tic-Tac-Toe)
- 翻译截图有哪些?你知道翻译截图怎样操作的
- 几种光纤接口(ST,SC,LC,FC)
- web测试bug清单
- Google CSE帮你多站点同时站内搜索
热门文章
- Adaboost算法——详细讲解
- ​ 每周一书《数学之美 第二版》分享!
- vue项目 - Mockjs 模拟后台接口数据
- Codeforces Global Round 7 E. Bombs(线段树)
- 计算机毕业设计Java企业人事管理系统(源码+系统+mysql数据库+lw文档)
- Git学习之解决合并冲突
- NaN是什么?NaN == NaN 的结果是什么?为什么?
- quartz配置,实时更改
- 非常详细的 navigationController 的使用
- Tekton系列之实践篇-我的第一条Pipeline