JAVA的mock工具mockito简介

摘要:
org.mockito</artifactId>版本>1.8.5<Mockito.when(mockedList.incontains(argThat(IsValid())).toReturn(“元素”);publicclassIsValidextendsArgumentMatcher<对象>

在测试过程中,难免会碰到交互的外围系统不给力的情况,这时候mock就派上用场了,前段时间跟同学聊到这块的时候,他向我推荐mockito这个mock工具,试用了一下,确实很好用,这里给大家介绍下这款工具:

1、mockito的特点

  • 它既能mock接口也能mock实体类(咱测试框架mock工具也能做到)
  • 简单的注解语法-@Mock
  • 简单易懂,语法简单
  • 支持顺序验证
  • 客户化参数匹配器

2、mockito的配置

只需依赖jar包即可:

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<scope>test</scope>
<version>1.8.5</version>
</dependency>

2、mockito的用法

注解的方式:

只需在要mock的对象上添加@Mock即可,如:

public class ArticleManagerTest {

@Mock private ArticleCalculator calculator;
@Mock private ArticleDatabase database;
@Mock private UserProvider userProvider;

private ArticleManager manager;

不使用注解:
//要mock的实体类
LinkedList mockedList = mock(LinkedList.class);
//模拟方法调用的返回值
Mockito.when(mockedList.get(0)).toReturn("first");
Mockito.when(mockedList.get(1)).toThrow(new RuntimeException());
//打印出"first"
System.out.println(mockedList.get(0));
//抛出异常
System.out.println(mockedList.get(1));
//返回null,因为还没有对返回值做模拟
System.out.println(mockedList.get(999));
3、参数匹配器
//使用anyInt()来匹配任意int型参数
Mockito.when(mockedList.get(anyInt())).toReturn("element");

//可以使用自己定义的匹配器 (isValid()是自定义的参数匹配器):
Mockito.when(mockedList.contains(argThat(IsValid()))).toReturn("element");

public class IsValid extends ArgumentMatcher<Object> {

@Override
public boolean matches(Object argument) {
if (argument instanceof String) {
return true;
} return false;
}
}

免责声明:文章转载自《JAVA的mock工具mockito简介》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇php 使用phpqrcode生成二维码并上传到OSSxmind常用快捷键下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用iis虚拟目录实现文件服务器功能

要求说明:   通过网站上传文件保存到统一的文件服务器上。   服务器说明:     1.文件服务器以下称为FilesServer,IP地址为:192.168.1.213    2.Web服务器为以下称为WebServer,IP地址为:192.168.1.214 详细步骤:   (1)在FilesServer和WebServer上分别新建一个新用户,要求这...

流量取证-流量中提取文件

以前整理的一些东西,拿出来做备忘 PCAP 报文就是抓取实际在网络中传输的图片,视频等数据,然后以PCAP 格式存储形成的文件。工作中对离线的数据包进行回溯分析,有时会遇到将 PCAP 中的码流还原成相应的图片、视频、邮件等原有格式的需求。 从流量中取证文件大部分情况下是为了提取流量中的可执行程序。 1、 tcpxtract 安装: apt-get ins...

Xcode开发 字符串用法

Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。 1.创建经典的NSString字符串 NSString...

快速搭建angular7 前端开发环境

第一步:全局安装 Angular CLI (1)打开npm(终端)安装angular-cli 第二步:创造工作区和初始应用 (1)运行命令 ng new my-app 第三步:启动开发服务器 (1)cd my-app (2)ng serve --open (3)运行成功后app.component.js/app.component.css/app.comp...

vant+vue控制列表展开

<van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"...

【java】Freemarker 动态生成word(带图片表格)

1、添加freemarker.jar 到java项目。 2、新建word文档。 3、将文档另存为xml 格式。 4、将xml格式化后打开编辑(最好用notepad,有格式),找到需要替换的内容,将内容换为变量(${变量名})。 5、生成表格,包括动态列和动态行。其中columnList 是List<String>格式的表头数据,datas...