单元测试-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.概述 单 ...
随机推荐
- hihocoder第三十六周 二分查找
题目链接:http://hihocoder.com/contest/hiho36/problem/1 , 一个比较简单的二分. 算法: 由于数据量比较大,O(nlogn)无法通过,所以不能先排序再查找 ...
- pta 编程题15 列出连通集
其它pta数据结构编程题请参见:pta 题目 题目要求分别以深度优先搜索和广度优先搜索输出图的连通集. 广度优先搜索要用到队列,先回顾一下循环队列: struct QNode { int* Data; ...
- 集成Ehcache
提醒 这一小节的是如何在应用层(service或者module或action类)中使用ehcache 准备工作 下载ehcache 你需要一个js文件 请务必阅读下面代码中的注释!! 分情况选 ...
- 【BZOJ3930】[CQOI2015] 选数(容斥)
点此看题面 大致题意: 让你求出在区间\([L,H]\)间选择\(n\)个数时,有多少种方案使其\(gcd\)为\(K\). 容斥 原以为是一道可怕的莫比乌斯反演题. 但是,数据范围中有这样一句话:\ ...
- 【HDU1542】Atlantis (扫描线的经典运用)
点此看题面 大致题意: 给你\(N\)个矩形,请你求出它们覆盖的面积(重叠的面积只算一次). 扫描线 这道题是一道典型的求矩形面积并问题,是扫描线的一个经典运用.这里就不赘述了. 代码 #includ ...
- 【洛谷2152】[SDOI2009] SuperGCD(Python好题)
点此看题面 大致题意: 给你两个长度\(\le10000\)的正整数,让你求它们的\(gcd\). Python 高精请绕道. 这题的正解应该是Python. 对于这种高精题,肯定是Python最方 ...
- AOSP常见漏洞类型简介
Heap/Stack Overflow(CVE-2017-0541) 漏洞出现在PushcdlStack函数中,如下所示 # /external/sonivox/arm-wt-22k/lib_sr ...
- GB MB KB B 关系
1KB=1024Bytes=2的10次方Bytes 1MB=1024KB=2的20次方Bytes 1GB=1024MB=2的30次方Bytes 1TB=1024GB=2的40次方Bytes
- JS中进行浮点数计算式,遇到的问题
今天在做项目时,需要在页面进行计算,但是当两个数都是小数时,计算的结果却不是想象中的: 比如1371.3-0.9算出来却是1370.39999999,后来上网搜一下,原来js是弱类型语言,没有那么高的 ...
- oc字典放入到数组里,根据字典里的属性排序(重点)
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...