没有合适的资源?快使用搜索试试~ 我知道了~
mockito单元测试
需积分: 50 930 浏览量
2018-02-05
09:40:29
上传
评论
收藏 785KB DOCX 举报
温馨提示
mickito实例:在实际项目中写单元测试的过程中我们会发现需要测试的类有很多依赖,这些依赖项又会有依赖,导致在单元测试代码里几乎无法完成构建,尤其是当依赖项尚未构建完成时会导致单元测试无法进行。为了解决这类问题我们引入了Mock的概念,简单的说就是模拟这些需要构建的类或者资源,提供给需要测试的对象使用。
资源推荐
资源详情
资源评论

















在实际项目中写单元测试的过程中我们会发现需要测试的类有很多依赖,这些依赖项
又会有依赖,导致在单元测试代码里几乎无法完成构建,尤其是当依赖项尚未构建完成时
会导致单元测试无法进行。为了解决这类问题我们引入了 Mock 的概念,简单的说就是模
拟这些需要构建的类或者资源,提供给需要测试的对象使用。业内的 Mock 工具有很多,
也已经很成熟了,这里我们将直接使用最流行的 Mockito 进行实战演练,完成 mockito 教程。
Mock 工具概述
1.1 Mockito 简介
EasyMock 以及 Mockito 都因为可以极大地简化单元测试的书写过程而被许多人应用在自己
的工作中,但是这两种 Mock 工具都不可以实现对静态函数、构造函数、私有函数、 Final
函数以及系统函数的模拟,但是这些方法往往是我们在大型系统中需要的功能。
另外,关于更多 Mockito2.0 新特性,参考官方介绍文档,里边有关于为什么不 mock private
的原因,挺有意思的:
https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2
1.2 Mockito 准备工作
###Maven###
通过 Maven 管理的,需要在项目的 Pom.xml 中增加如下的依赖:

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.5</version>
<scope>test</scope>
</dependency>"
在程序中可以 import org.mockito.Mockito,然后调用它的 stac 方法。
Maven 用户可以声明对 mockito-core 的依赖。 Mockito 自动发布到 Bintray 的中心,并同步
到 Maven Central Repository。
特别提醒:使用手工依赖关系管理的 Legacy 构建可以使用 1. *“mockito-all”分发。 它可以从
Mockito 的 Bintray 存储库或 Bintray 的中心下载。 在但是 Mockito 2. * “mockito-all”发行已经
停止,Mockito 2 以上版本使用“mockito-core”。
官网下载中心:
http://search.maven.org/#search|gav|1|g%3A%22org.mockito%22%20AND
%20a%3A%22mockito-core%22
目前最新版本为 2.7.19,由于公司网络网关问题,最好是去官网手工下载。
另外 Mockito 需要 Junit 配合使用,在 springboot 项目中直接就已经引入了
测试相关的依赖这里可以忽略。
然后为了使代码更简洁,最好在测试类中导入静态资源,还有为了使用常用的 junit 关键字,
也要引入 junit 的两个类 Before 和 Test:
import static org.mockito.Mockito.*;import static org.junit.Assert.*;import
org.junit.Before;import org.junit.Test;
1.3 模拟对象
创建 Mock 对象的语法为 mock(class or interface)。
Mock 对象的创建
mock(Class classToMock);
mock(Class classToMock, String name)
mock(Class classToMock, Answer defaultAnswer)
mock(Class classToMock, MockSe3ngs mockSe3ngs)
mock(Class classToMock, ReturnValues returnValues)
可以对类和接口进行 mock 对象的创建,创建时可以为 mock 对象命名。对 mock 对象命名
的好处是调试的时候容易辨认 mock 对象。
Mock 对象的期望行为和返回值设定
假设我们创建了 LinkedList 类的 mock 对象:
LinkedList mockedList = mock(LinkedList.class);

1.4 设置对象调用的预期返回值
通过 when(mock.someMethod()).thenReturn(value) 来设定 Mock 对象某个方法调用时的返回
值。我们可以看看源码中关于 thenReturn 方法的注释:
使用 when(mock.someMethod()).thenThrow(new RunmeExcepon) 的方式来设定当调用某个
方法时抛出的异常。
以及 Answer:
剩余13页未读,继续阅读
资源评论


小白的奋斗历程
- 粉丝: 43
- 资源: 5
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
