本文较短,只是备份一下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基础的更多相关文章

  1. 教育单元测试mock框架优化之路(上)

    转载:https://sq.163yun.com/blog/article/169561874192850944 众所周知,mock对于单元测试,尤其是基于spring容器的单元测试,是非常重要的.它 ...

  2. 教育单元测试mock框架优化之路(下)

    转载:https://sq.163yun.com/blog/article/169563599967031296 四.循环依赖的解决 果然! 当我将@SpyBean应用到存在有循环依赖的Bean上时, ...

  3. 单元测试mock框架——jmockit实战

    JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...

  4. 【Mock】mock基础、简单的单元测试代码练习。

    说到接口测试,必问 mock,mock 通俗一点来说就是模拟接口返回.解决接口的依赖关系,主要是为了解耦,单元测试用的多. 什么是Mock unittest.mock 是一个用于在 Python 中进 ...

  5. 单元测试 mock EF 中DbContext 和DbSet Include

    现在EF越来越流行了,很多时候业务成都是直接访问DbContext 和DbSet来操作数据的. 那么我们测试的时候如何来mock这2个对象了?现在时间很晚了, 就直接贴code吧 首先看看的我们DbC ...

  6. Mvc controller单元测试 Mock Url对象

    被测试Action 包含有Url对象的代码: data = new data { title = ds.Name, icon = "folder", attr = new { id ...

  7. 单元测试mock当前时间

    在实际项目中很多地方用到DateTime.Now,这个时间是时时变化的.如果要进行单元测试对比预期结果时,这个时间无法预测,可以添加如下两个时间类 namespace Common.Helper { ...

  8. 教育单元测试mock框架优化之路(中)

    转载:https://sq.163yun.com/blog/article/169564470918451200 三.间接依赖的bean的mock替换 对于前面提供的@Mock,@Spy+@Injec ...

  9. 基于spring与mockito单元测试Mock对象注入

    转载:http://www.blogjava.net/qileilove/archive/2014/03/07/410713.html 1.关键词 单元测试.spring.mockito 2.概述 单 ...

随机推荐

  1. hihocoder第三十六周 二分查找

    题目链接:http://hihocoder.com/contest/hiho36/problem/1 , 一个比较简单的二分. 算法: 由于数据量比较大,O(nlogn)无法通过,所以不能先排序再查找 ...

  2. pta 编程题15 列出连通集

    其它pta数据结构编程题请参见:pta 题目 题目要求分别以深度优先搜索和广度优先搜索输出图的连通集. 广度优先搜索要用到队列,先回顾一下循环队列: struct QNode { int* Data; ...

  3. 集成Ehcache

    提醒 这一小节的是如何在应用层(service或者module或action类)中使用ehcache   准备工作 下载ehcache 你需要一个js文件   请务必阅读下面代码中的注释!! 分情况选 ...

  4. 【BZOJ3930】[CQOI2015] 选数(容斥)

    点此看题面 大致题意: 让你求出在区间\([L,H]\)间选择\(n\)个数时,有多少种方案使其\(gcd\)为\(K\). 容斥 原以为是一道可怕的莫比乌斯反演题. 但是,数据范围中有这样一句话:\ ...

  5. 【HDU1542】Atlantis (扫描线的经典运用)

    点此看题面 大致题意: 给你\(N\)个矩形,请你求出它们覆盖的面积(重叠的面积只算一次). 扫描线 这道题是一道典型的求矩形面积并问题,是扫描线的一个经典运用.这里就不赘述了. 代码 #includ ...

  6. 【洛谷2152】[SDOI2009] SuperGCD(Python好题)

    点此看题面 大致题意: 给你两个长度\(\le10000\)的正整数,让你求它们的\(gcd\). Python​ 高精请绕道. 这题的正解应该是Python. 对于这种高精题,肯定是Python最方 ...

  7. AOSP常见漏洞类型简介

    Heap/Stack Overflow(CVE-2017-0541) 漏洞出现在PushcdlStack函数中,如下所示   # /external/sonivox/arm-wt-22k/lib_sr ...

  8. GB MB KB B 关系

    1KB=1024Bytes=2的10次方Bytes 1MB=1024KB=2的20次方Bytes 1GB=1024MB=2的30次方Bytes 1TB=1024GB=2的40次方Bytes

  9. JS中进行浮点数计算式,遇到的问题

    今天在做项目时,需要在页面进行计算,但是当两个数都是小数时,计算的结果却不是想象中的: 比如1371.3-0.9算出来却是1370.39999999,后来上网搜一下,原来js是弱类型语言,没有那么高的 ...

  10. oc字典放入到数组里,根据字典里的属性排序(重点)

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...