1.Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。同时也可以当调用别人的模块,而该模块又没有实现时(只提供接口),我们可以在独立的环境中测试自己的模块逻辑。

2.使用前的准备,下载所需的jar包:easymock-3.0.jar(或以上版本),junit-4.4.jar,cglib-nodep-2.1_3.jar

3.使用方法较简单。主要有以下步骤:

*•使用 EasyMock 生成 Mock 对象;

*•设定 Mock 对象的预期行为和输出;

*•将 Mock 对象切换到 Replay 状态;

*•调用 Mock 对象方法进行单元测试;

*•对 Mock 对象的行为进行验证。

测试实例:假如我有一个IStudent接口类和StudentApplication类,StudentApplication类中用到了IStudent中的没实现的方法,而我想测试StudentApplication,这时用EasyMock构造一个IStudent的Mock对象,并给要用到的的未实现的方法设定已知返回值。

code:

1 public interface IStudent {

2 public String doMethod1();

3 public String doMethod2();

4 public String doMethod3();

5

6 }

1 public class StudentApplication {

2 IStudent student=null;

3 public StudentApplication(){

4

5 }

6

7 public String doMethod(){

8 String str1=student.doMethod1();

9 String str2=student.doMethod2();

10 String str3=student.doMethod3();

11 return str1+str2+str3;

12 }

13

14 public IStudent getStudent() {

15 return student;

16 }

17

18 public void setStudent(IStudent student) {

19 this.student = student;

20 }

21

22

23

24 }

1 import main.IStudent;

2 import main.StudentApplication;

3

4 import org.easymock.EasyMock;

5 import org.junit.Assert;

6 import org.junit.Test;

7

8

9 public class testStudentApplication {

10 IStudent student;

11 StudentApplication application;

12 @Test

13 public void testdoMethod(){

14 //•使用 EasyMock 生成 Mock 对象;

15 student=EasyMock.createMock(IStudent.class);

16 //设定 Mock 对象的预期行为和输出

17 EasyMock.expect(student.doMethod1()).andReturn("a").times(1);

18 EasyMock.expect(student.doMethod2()).andReturn("b").times(1);

19 EasyMock.expect(student.doMethod3()).andReturn("c").times(1);

20 //将 Mock 对象切换到 Replay 状态

21 EasyMock.replay(student);

22 //调用 Mock 对象方法进行单元测试

23 application=new StudentApplication();

24 application.setStudent(student);

25 String getStr=application.doMethod();

26 //对 Mock 对象的行为进行验证

27 String cstr="abc";//正确的字符串

28 Assert.assertEquals(getStr, cstr);

29 EasyMock.verify(student);

30

31 }

32

33 }

easymock 图片_EasyMock的使用相关推荐

  1. easymock 图片_easy-mock的使用

    上一节我们讲了如何使用mockjs来生成模拟数据,这一节我们来介绍另外一个实用的mock工具 - easy-mock,它是一个简单.高效.可视化的在线mock工具.相对于我们上节的 mockjs主要用 ...

  2. easymock 图片_EasyMock使用总结

    最重要的事说在前面:遇到一个你不熟悉的知识,一定要去官网仔仔细细的看官方文档!一定要仔仔细细!一定要!(尔康鼻孔脸..) 正篇: 一.使用 首先,当然是添加依赖,有人用maven,有人用ant或者ma ...

  3. easymock 图片_用easymock来mock数据

    用线上的平台去mock数据: easymock. rapapi阿里的.功能更强大些,用起来更复杂. 搜索easymock,进入页面. 还是写那个网易云音乐作为演示. 注册或登录账号,然后创建项目. 点 ...

  4. easymock教程_EasyMock教程–入门

    easymock教程 在本文中,我将向您展示EasyMock是什么,以及如何使用它来测试Java应用程序. 为此,我将创建一个简单的Portfolio应用程序,并使用JUnit&EasyMoc ...

  5. easymock 图片_数据模拟神器 easy-mock 正式开源

    开源公告 由大搜车无线团队出品的 easy-mock 在线数据模拟服务上线至今已经有几个月时间了,近期网站刚更新了焕然一新的 2.0 版本,与此同时,我们还带来一个更重磅的消息: 今天正式将整个服务的 ...

  6. easymock参数_EasyMock捕获参数

    easymock参数 Sometimes we want to stub behaviors for any input arguments, so we use argument matchers. ...

  7. easymock参数_EasyMock参数匹配器

    easymock参数 EasyMock argument matchers allow us to provide the flexible argument for matching when st ...

  8. easymock教程_EasyMock教程

    easymock教程 EasyMock is a java based mocking framework, which is used in conjunction with other unit ...

  9. easymock 图片_如何使用EasyMock?

    在前后端分离的概念中,前端脱离与后端工作,在对好接口之后,以及后端没有假数据的情况下,可以先采用折衷的办法来请求假数据,这就有了Mock.js,可以随机生成数据,拦截ajax请求.Easy Mock ...

最新文章

  1. NFS挂载的问题svc: failed to register lockdv1 RPC service
  2. 邮件防伪SPF,反垃圾邮件
  3. 设计模式---命令模式
  4. 产品经理十八章:产品创新能力(二)
  5. PHP代码优化的细节
  6. 学位论文盲审被卡,或直接被毙,问题主要出在这几条!
  7. MATLAB信号处理之信号的积分和微分
  8. vnc安装linux教程,Centos7安装配置vncserver详细教程
  9. JSON对象超详细讲解|对象、循环对象、嵌套对象、修改和删除对象属性
  10. 用CSS美化表格【前端知识】
  11. 常用USB芯片介绍(转串口、SPI 、单片机读写U盘)
  12. unity 回车_Unity InputField空格引起排版错误和回车换行
  13. 【8086汇编】DOS系统中 edit 文本编辑器详解
  14. PMP-PMBOK-培训(7)Initiating a Project and Preparing the Project Plan
  15. Matlab绘图------特殊图形------直方图
  16. system information
  17. 综合练习Java算法
  18. Java SE8 流 最全总结
  19. educoder 5-4Python计算思维训练——数组进阶之线性代数(答案)
  20. 曙光超算平台操作之深度学习

热门文章

  1. 布线改造之家居布线篇
  2. 5,000名智利商家现接受加密货币支付
  3. 全球与中国微生物农药市场深度研究分析报告
  4. Es搜索引擎概述和语句案例
  5. 图数据库-Neo4j
  6. ADP124ARHZ-1.8-R7 5.5 V输入、500 mA、低静态电流、CMOS线性调节器,31种固定输出电压选项
  7. lpc43xx双核处理器之双核通信
  8. 【调剂】211河北工业大学招收调剂研究生(学籍在河工大,课题研究在中科院自动化所)...
  9. mix1 android n,MIX - 指尖的数字暗房 - Android 应用 - 【最美应用】
  10. 交通工具类Vehicle