本文较短,只是备份一下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. 如何在SAP云平台上使用MongoDB服务

    首先按照我这篇文章在SAP云平台上给您的账号分配MongboDB服务:如何在SAP云平台的Cloud Foundry环境下添加新的Service 然后从这个链接下载SAP提供的例子程序. 1. 使用命 ...

  2. World Wind Java开发之十——AnalyticSurface栅格渲染(转)

    http://blog.csdn.net/giser_whu/article/details/43017881 1.AnalyticSurfaceDemo ArcGIS下对栅格的各种分级渲染效果是非常 ...

  3. 用fast rcnn绘制loss曲线遇到的问题

    运行fast rcnn的train,会进入ipython,要先exit退出才能继续运行程序 绘制图像时,用了命令: ./tools/train_net.py --gpu 0 --solver mode ...

  4. AngularJs学习笔记-组件生命周期

    组件生命周期 (1)组件生命周期钩子 constructor:组件创建时被创建 ngOnChanges: 父组件修改或初始化子组件的输入属性时被调用,如果子组件没有输入属性,则永远不会被调用,它的首次 ...

  5. Activiti学习记录(三)

    1.流程变量 1.1 流程图 流程变量在整个工作流中扮演很重要的作用.例如:请假流程中有请假天数.请假原因等一些参数都为流程变量的范围.流程变量的作用域范围是只对应一个流程实例.也就是说各个流程实例的 ...

  6. Echarts样式

    Echarts设置样式如下 <div id="main" style="width: 250px;height:200px;"></div&g ...

  7. shell脚本,awk结合正则来打印文件里面的内容。

    文件内容如下:key1abc d key2 1.想得到如下结果: abc d 2.想得到如下结果: key1key2

  8. jquery简易的三级导航

    <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">   ...

  9. win10如何修改host文件

    首先找到host文件,一般位于:C:\Windows\System32\drivers\etc 之后用记事本打开,直接修改.保存txt文件到桌面. 最后删除后缀名,再粘贴回去就可以了.

  10. Linux运维常用命令详解

    1.ls 文件属性:  -:普通文件  d:目录文件  b:块设备  c:字符设备文件  l:符号连接文件  p:命令管道  s:套接字文件  文件权限: 9位数字,每3位一组  文件硬链接次数  文 ...