Mockito入门

Mockito是一款用于Java的mocking框架,简化了测试过程中的对象模拟步骤。本文介绍了如何使用Mockito模拟对象及其方法调用,并演示了如何验证方法调用次数等实用技巧。

简介

 

InfoQ-使用Mockito 1.5监视普通对象 写道
Mockito是一个针对Java的mocking框架。它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。

 

 更多信息请参考如下位置,

 原文链接:http://www.infoq.com/cn/news/2008/09/mockito-1.5

 官方网站:http://code.google.com/p/mockito/

 

入门

以下内容均参考至http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html


在任何应用Mockito的地方,加上如下片段:
Java代码 复制代码
  1. import static org.mockito.Mockito.*;  
 

模拟对象

 

Java代码 复制代码
  1. // 模拟LinkedList 的对象   
  2. LinkedList mockedList = mock(LinkedList.class);   
  3.   
  4. // 此时调用get方法,是会返回null,因为还没有对方法调用的返回值做模拟    
  5. System.out.println(mockedList.get(999));  

 

 

 模拟方法调用的返回值

 

Java代码 复制代码
  1. // 模拟获取第一个元素时,返回字符串first   
  2. when(mockedList.get(0)).thenReturn("first");   
  3.   
  4. // 此时打印输出first   
  5. System.out.println(mockedList.get(0));  
 

模拟方法调用抛出异常

Java代码 复制代码
  1. // 模拟获取第二个元素时,抛出RuntimeException   
  2. when(mockedList.get(1)).thenThrow(new RuntimeException());   
  3.   
  4. // 此时将会抛出RuntimeException   
  5. System.out.println(mockedList.get(1));  
 没有返回值类型的方法也可以模拟异常抛出:

Java代码 复制代码
  1. doThrow(new RuntimeException()).when(mockedList).clear();  
 

模拟方法调用的参数匹配

Java代码 复制代码
  1. // anyInt()匹配任何int参数,这意味着参数为任意值,其返回值均是element   
  2. when(mockedList.get(anyInt())).thenReturn("element");   
  3.   
  4. // 此时打印是element   
  5. System.out.println(mockedList.get(999));  

验证方法调用次数

Java代码 复制代码
  1. // 调用add一次   
  2. mockedList.add("once");   
  3.   
  4. // 下面两个写法验证效果一样,均验证add方法是否被调用了一次   
  5. verify(mockedList).add("once");   
  6. verify(mockedList, times(1)).add("once");  
 
 还可以通过atLeast(int i)和atMost(int i)来替代time(int i)来验证被调用的次数最小值和最大值。

 

收尾

上面仅列举了一些常用的,更多用法和技巧还请详细参考 http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html。让Mockito使测试驱动开发更有趣吧!
【飞机能量-机动性(E-M)特性】飞机评估的最大转弯速度(即机动速度)、最大可持续转弯速度和最大可持续载荷系数对应的真空速度(Matlab代码实现)内容概要:本文档主要围绕飞机能量-机动性(E-M)特性展开,重点研究了飞机评估中的最大转弯速度(即机动速度)、最大可持续转弯速度以及最大可持续载荷系数对应的真空速度,并提供了基于Matlab的代码实现方法。内容涵盖飞行力学中的关键性能指标计算,结合理论分析与编程仿真,帮助理解飞机在不同飞行状态下的机动能力边界。此外,文档还涉及大量与航空航天、无人机控制、路径规划、电力系统优化、信号处理等相关课题的Matlab/Simulink仿真实例,展示了其在多领域科研中的广泛应用。; 适合人群:具备一定航空工程或自动化背景,熟悉Matlab编程,从事飞行器设计、控制算法开发或相关科研工作的研究生、工程师及科研人员。; 使用场景及目标:①用于飞机机动性能分析与仿真,掌握E-M图的核心构建方法;②通过Matlab代码实现关键飞行参数的计算,支撑飞行器性能评估与控制系统设计;③作为教学与科研参考资料,辅助开展航空航天领域的建模与仿真工作。; 阅读建议:建议读者结合飞行力学基础知识,逐步运行并调试所提供的Matlab代码,深入理解各项性能参数的物理意义与计算逻辑,同时可参考文档中其他相关领域的案例进行拓展学习与交叉应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值