单元测试mock之mockito使用
先来一个简单的例子来感受一下
外部接口类:TestService.java
1 package com.yzl.mock; 2 3 /** 4 * 测试用服务 5 * 6 * @author yangzhilong 7 */ 8 public interface TestService { 9 /** 10 * 11 * 简单的测试服务,实现两个数相加 12 * 13 * @param a 14 * @param b 15 * @return 16 */ 17 public int add(int a, int b); 18 }
正常流程的JUnit单元测试方法类似如下:
1 @Test 2 public void test0(){ 3 //从spring容器里取到该接口的实现类 4 TestService service = new ClassPathXmlApplicationContext("xxx.xml").getBean(TestService.class); 5 int a=2, b=3; 6 int result = service.add(a, b); 7 Assert.assertSame("计算结果预期", 5, result); 8 9 //拿到这个result然后调用其他的业务逻辑 10 }
但是目前该接口的实现类(服务)目前是调用不通的,或者是压根还没做,但是你又不想因为这个接口而影响自己的代码的测试,就可以使用Mockito来模拟接口的调用。
首先引入mockito的jar
1 <dependency> 2 <groupId>org.mockito</groupId> 3 <artifactId>mockito-core</artifactId> 4 <version>2.1.0-RC.1</version> 5 <scope>test</scope> 6 </dependency>
然后编写代码如下:
1 package com.yzl.mock; 2 3 import org.junit.Assert; 4 import org.junit.Test; 5 import org.mockito.Mockito; 6 7 public class MockTest { 8 /* 9 * 使用mockito来模拟测试 10 */ 11 @Test 12 public void test1(){ 13 TestService service = Mockito.mock(TestService.class); 14 int a=2, b=3; 15 //使用mockito模拟接口返回 16 Mockito.when(service.add(a, b)).thenReturn(5); 17 int result = service.add(a, b); 18 System.out.println(a + "+" + b + "=" + result); 19 Assert.assertSame("计算结果预期", 5, service.add(a, b)); 20 //使用result继续做后面的业务 21 } 22 }
上面的代码中Mockito的静态方法可以通过静态Import的形式导入,然后使用里面的静态方法就可以不带类名了,例如:
//非静态import的写法 import org.mockito.Mockito; Mockito.when(service.add(a, b)).thenReturn(5);//静态import的写法 import static org.mockito.Mockito.*; when(service.add(a, b)).thenReturn(5);
运行junit单元测试方法将输出:
2+3=5
单元测试mock之mockito使用相关推荐
- 单元测试Mock框架--Mockito
文章目录 目前开发中,单元测试遇到的问题 解决方案--Mock Junit4 + Mockito: Mockito常用注解: Mockito常用方法: Tips: 总结 目前开发中,单元测试遇到的问题 ...
- android mock测试资源,Android 单元测试 --Mock 及 Mockito
以前我在 Mock 概念 所谓的 Mock 就是创建一个类的虚假的对象,在测试环境中,用来替换掉真实的对象,主要提供两大功能: 验证这个对象的某些方法的调用情况,调用了多少次,参数是什么等等 指定这个 ...
- Android单元测试系列(3)-Mock之Mockito
目录 一.官网 二.Demo示例 1. 目录结构 2. 被测试的类 3. 测试类 三.Mockito方法说明 1. mock对象创建 2. Mockito框架中的常见方法说明 2.1 常见的打桩方法 ...
- 史上最轻量!阿里新型单元测试Mock工具开源了
简介:为了探索更轻量易用的Mock测试手段,阿里云云效团队尝试给工具减负,在主流Mock工具的基础上让Mock的定义和置换干净利落,最终设计了一款极简风格的测试辅助工具TestableMock,无需初 ...
- Mock和Mockito简介
本篇对Mock和Mockito做了简单的介绍,并列出了简单的示例. 使用Mockito需要基于JUnit,所以不了解JUnit的同学请先参考一下之前JUnit的文章. 什么是Mock? 在面向对象程序 ...
- Mock 及 Mockito 教程
Mockito 教程 Mockito框架官方地址mockito,文档地址,中文版文档. Mockito库能够Mock对象.验证结果以及打桩(stubbing). 1. Mock和Mockito的关系 ...
- 单元测试 - mock异常
单元测试 - mock异常 参考文章: (1)单元测试 - mock异常 (2)https://www.cnblogs.com/jylsgup/p/11154111.html (3)https://w ...
- 单元测试mock框架——jmockit实战
JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...
- Mock和Java单元测试中的Mock框架Mockito介绍
什么是Mock? 在面向对象程序设计中,模拟对象(英语:mock object,也译作模仿对象)是以可控的方式模拟真实对象行为的假的对象.程序员通常创造模拟对象(mock object)来测试其他对象 ...
最新文章
- JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)
- 数据库高可用性——SQL Server 2005数据库复制简单图解
- perl 远程 mysql_perl联接mysql
- java获取response数据_Java中实现Http请求并获取响应数据
- SP1026 FAVDICE - Favorite Dice 期望dp
- Oracle基础 游标
- 【Kafka】消息超过最大值限制max.request.size
- 更改TFS项目中的SharePoint网站端口
- 当前主流的单元测试工具
- 《Android框架揭秘》读书笔记--在Java中调用C库函数
- Nb iot php_NB-IoT是什么
- 实现60fps的网易云音乐首页
- html格式的字幕如何匹配电影,电影片尾字幕内容范本
- 李宏毅机器学习课程自测练习题
- 重来之大学版|卸负篇-同辈压力的影响,如何正确看待同辈压力?如何缓解压力?
- 腾讯云实时音视频带你玩转语音聊天室
- 黎明职业大学计算机教研室主任,黎明职业大学计算机系相关专业.doc
- Java解决角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。
- 产品工作流| 工作交接
- 2022最新拼多多anti_content加密算法