本文较短,只是备份一下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. 流媒体 5——MPEG声音

    1. 听觉系统的感知特性: MPEG声音的数据压缩和编码不是依据波形本身的相关性和模拟人的发音器官的特性,而是利用人的听觉系统的特性来达到压缩声音数据的目的,这种压缩编码称为感知声音编码. 许多科学工 ...

  2. 部署git服务器(Windows Server 2008)

    原来的这个项目是一个人开发的,没有做版本管理,我接手后准备搭建git版本管理服务端,方便离线开发和做版本管理: 一台云主机,操作系统:Windows Server 2008,64位: java已经安装 ...

  3. 一键备份脚本 backup.sh

    做网站最重要的是什么?数据!数据,是网站之本,备份,是每一个站长都应该重视的事情.但同时,备份也是一件繁琐和重复的事情.所以,这些事情,肯定能做到自动化的.下面来介绍一下这个一键备份脚本 backup ...

  4. python基础一 day16 内置函数

    # 数据类型 :int bool ...# 数据结构 : dict list tuple set str reversed()l = [1,2,3,4,5]l.reverse()print(l)l = ...

  5. python剑指offer 包含min函数的栈

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). # -*- coding:utf-8 -*- class Solution: def ...

  6. cocoapods 类库管理利器

    作为iOS开发者,第三方类库的使用是最经常的,但鉴于第三方类库的不断更新以及其可能需要依存其他类,如果要使用最新版那么我们需要重新下载再添加到项目中,无疑带来一些繁琐的麻烦,那么现在这里就有一款能解决 ...

  7. JS - OOP-继承的最佳实现方式

    如上图,使用第三种方式实现继承最好,也就是加了下划线的. 但是Object.create方法是ES6才支持的,所以,右边就写了一个实现其同样功能的函数.

  8. 二十八、MySQL 元数据

    MySQL 元数据 你可能想知道MySQL以下三种信息: 查询结果信息: SELECT, UPDATE 或 DELETE语句影响的记录数. 数据库和数据表的信息: 包含了数据库及数据表的结构信息. M ...

  9. centos7上mysql8.0rpm方式安装

    首先是下载图解 1.首先卸载centos7中自带的mariadb rpm -qa|grep mariadb //查询出来已安装的mariadb rpm -e --nodeps 文件名 //卸载mari ...

  10. Spark架构与作业执行流程简介(scala版)

    在讲spark之前,不得不详细介绍一下RDD(Resilient Distributed Dataset),打开RDD的源码,一开始的介绍如此: 字面意思就是弹性分布式数据集,是spark中最基本的数 ...