单元测试-mock基础
本文较短,只是备份一下mock的几个常用基础例子方便复习
目录
介绍mock的使用例子
maven资源
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.</version>
</dependency>
1 mock一个对象
annotation
@Mock private TestOpt tt;
静态方法调用
List mockedList = Mockito.mock(ArrayList.class);
2 mock传参与返回设定
精确匹配
public void case0() {//匹配调用
List mockedList = Mockito.mock(ArrayList.class);
Mockito.when(mockedList.get()).thenReturn("first");
Mockito.when(mockedList.get()).thenThrow(new RuntimeException());
System.out.println(mockedList.get());//first
System.out.println(mockedList.get());//exception
}
模糊匹配
public void case1(){//模糊调用
TestOpt tt = Mockito.mock(TestOpt.class);
Mockito.when(tt.one(Mockito.anyInt(), Mockito.anyInt())).thenReturn().thenReturn();//多次调用
System.out.println(tt.one(, ));//3
System.out.println(tt.one(, ));//4
}
3 调用次数判断并集合annotation使用
@Mock private TestOpt tt;
@Mock private service ser;
@Test
public void case2(){//调用次数+注解
MockitoAnnotations.initMocks(this);//annotation调用
Mockito.when(this.ser.services(, )).thenReturn("");
Mockito.when(this.tt.one(, )).thenReturn();
System.out.println(ser.services(, ));System.out.println(ser.services(, )); //校验次数
tt.three();
tt.three();
System.out.println(tt.one(, ));System.out.println(tt.one(, ));
Mockito.verify(tt, Mockito.times()).three();
Mockito.verify(tt, Mockito.atLeast()).three();
Mockito.verify(tt, Mockito.atLeastOnce()).three();
// Mockito.verify(tt, Mockito.never()).three(); //从未调用
}
随手写的类--用于测试
public class TestOpt implements TestOptI {
public int one(int a ,int b){
return a+b;
}
public int two(int a ,int b){
return one(a, b)+one(a, b)+one(a, b);
}
public int three(){
return ;
}
}
public class service {
TestOptI i = null;
public String services(int a,int b){
i = new TestOpt();
return String.valueOf(i.one(a, )+i.three());
}
}
单元测试-mock基础的更多相关文章
- 教育单元测试mock框架优化之路(上)
转载:https://sq.163yun.com/blog/article/169561874192850944 众所周知,mock对于单元测试,尤其是基于spring容器的单元测试,是非常重要的.它 ...
- 教育单元测试mock框架优化之路(下)
转载:https://sq.163yun.com/blog/article/169563599967031296 四.循环依赖的解决 果然! 当我将@SpyBean应用到存在有循环依赖的Bean上时, ...
- 单元测试mock框架——jmockit实战
JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...
- 【Mock】mock基础、简单的单元测试代码练习。
说到接口测试,必问 mock,mock 通俗一点来说就是模拟接口返回.解决接口的依赖关系,主要是为了解耦,单元测试用的多. 什么是Mock unittest.mock 是一个用于在 Python 中进 ...
- 单元测试 mock EF 中DbContext 和DbSet Include
现在EF越来越流行了,很多时候业务成都是直接访问DbContext 和DbSet来操作数据的. 那么我们测试的时候如何来mock这2个对象了?现在时间很晚了, 就直接贴code吧 首先看看的我们DbC ...
- Mvc controller单元测试 Mock Url对象
被测试Action 包含有Url对象的代码: data = new data { title = ds.Name, icon = "folder", attr = new { id ...
- 单元测试mock当前时间
在实际项目中很多地方用到DateTime.Now,这个时间是时时变化的.如果要进行单元测试对比预期结果时,这个时间无法预测,可以添加如下两个时间类 namespace Common.Helper { ...
- 教育单元测试mock框架优化之路(中)
转载:https://sq.163yun.com/blog/article/169564470918451200 三.间接依赖的bean的mock替换 对于前面提供的@Mock,@Spy+@Injec ...
- 基于spring与mockito单元测试Mock对象注入
转载:http://www.blogjava.net/qileilove/archive/2014/03/07/410713.html 1.关键词 单元测试.spring.mockito 2.概述 单 ...
随机推荐
- 如何在SAP云平台上使用MongoDB服务
首先按照我这篇文章在SAP云平台上给您的账号分配MongboDB服务:如何在SAP云平台的Cloud Foundry环境下添加新的Service 然后从这个链接下载SAP提供的例子程序. 1. 使用命 ...
- World Wind Java开发之十——AnalyticSurface栅格渲染(转)
http://blog.csdn.net/giser_whu/article/details/43017881 1.AnalyticSurfaceDemo ArcGIS下对栅格的各种分级渲染效果是非常 ...
- 用fast rcnn绘制loss曲线遇到的问题
运行fast rcnn的train,会进入ipython,要先exit退出才能继续运行程序 绘制图像时,用了命令: ./tools/train_net.py --gpu 0 --solver mode ...
- AngularJs学习笔记-组件生命周期
组件生命周期 (1)组件生命周期钩子 constructor:组件创建时被创建 ngOnChanges: 父组件修改或初始化子组件的输入属性时被调用,如果子组件没有输入属性,则永远不会被调用,它的首次 ...
- Activiti学习记录(三)
1.流程变量 1.1 流程图 流程变量在整个工作流中扮演很重要的作用.例如:请假流程中有请假天数.请假原因等一些参数都为流程变量的范围.流程变量的作用域范围是只对应一个流程实例.也就是说各个流程实例的 ...
- Echarts样式
Echarts设置样式如下 <div id="main" style="width: 250px;height:200px;"></div&g ...
- shell脚本,awk结合正则来打印文件里面的内容。
文件内容如下:key1abc d key2 1.想得到如下结果: abc d 2.想得到如下结果: key1key2
- jquery简易的三级导航
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- win10如何修改host文件
首先找到host文件,一般位于:C:\Windows\System32\drivers\etc 之后用记事本打开,直接修改.保存txt文件到桌面. 最后删除后缀名,再粘贴回去就可以了.
- Linux运维常用命令详解
1.ls 文件属性: -:普通文件 d:目录文件 b:块设备 c:字符设备文件 l:符号连接文件 p:命令管道 s:套接字文件 文件权限: 9位数字,每3位一组 文件硬链接次数 文 ...