spring结合mockito
转载:https://blog.csdn.net/apexlj/article/details/50298029
mockito可模拟依赖对象的行为,从而简化跨类的测试。
maven获取mockito:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
</dependency>
以下例:
- 被测类:ConnInfoService
- 依赖类:ConnInfoAccessor
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/conf/test-context.xml")
public class ConnInfoServiceTest {
@Autowired
@InjectMocks
private ConnInfoService connInfoService;
@Mock
private ConnInfoAccessor connInfoAccessor;
@Before
public void before() throws Exception {
MockitoAnnotations.initMocks(this);
}
/**
* Method: getConnInfo(String connId)
*/
@Test
public void testGetConnInfo() throws Exception {
GPSConnInfo gpsConnInfo = new GPSConnInfo();
gpsConnInfo.setAppKey("appKey");
gpsConnInfo.setGpsNodeId("node1");
when(connInfoAccessor.getConnInfo("connId")).thenReturn(gpsConnInfo);
Assert.assertEquals(gpsConnInfo, connInfoService.getConnInfo("connId"));
}
/**
* Method: saveConnInfo(String connId, GPSConnInfo gpsConnInfo)
*/
@Test(expected = GPSServiceException.class)
public void testSaveConnInfo() throws Exception {
GPSConnInfo gpsConnInfo = new GPSConnInfo();
gpsConnInfo.setAppKey("appKey");
gpsConnInfo.setGpsNodeId("node1");
doThrow(new DataAccessException("e") {
@Override
public String getMessage() {
return super.getMessage();
}
}).when(connInfoAccessor).saveConnInfo("connId", gpsConnInfo);
connInfoService.saveConnInfo("connId", gpsConnInfo);
}
- @InjectMocks用于标识被测对象,从而把由@mock表示的依赖对象自动注入到被测对象中
- @Mock用于表示依赖对象
- MockitoAnnotations.initMocks(this);用于初始化以上注入动作
when(connInfoAccessor.getConnInfo("connId")).thenReturn(gpsConnInfo)
用于模拟带返回值的getConnInfo方法的处理doThrow(new DataAccessException("e") {
用于模拟无返回值的saveConnInfo方法抛出异常的行为
@Override
public String getMessage() {
return super.getMessage();
}
}).when(connInfoAccessor).saveConnInfo("connId", gpsConnInfo);
spring结合mockito的更多相关文章
- 基于spring与mockito单元测试Mock对象注入
转载:http://www.blogjava.net/qileilove/archive/2014/03/07/410713.html 1.关键词 单元测试.spring.mockito 2.概述 单 ...
- spring中使用mockito
1 mockito介绍和入门 官方:https://github.com/mockito/mockito 入门: 5分钟了解Mockito http://liuzhijun.iteye.com/blo ...
- 【项目经验】Mockito教程
一.教程 转载:https://blog.csdn.net/sdyy321/article/details/38757135/ 官网: http://mockito.org API文档:http:// ...
- Mockito 简介
Mockito 是一种 Java Mock 框架,主要是用来做 Mock 测试,它可以模拟任何 Spring 管理的 Bean.模拟方法的返回值.模拟抛出异常等等,在了解 Mockito 的具体用法之 ...
- @MockBean 注解后 bean成员对象为 null?
笔者在写自测的时候遇到的问题: 我想模拟一个Bean,并在之后使用Mockito打桩,于是使用了 @MockBean 注解(spring集成mockito的产物),但代码编写好了后启动测试却报Null ...
- Spring Boot中采用Mockito来mock所测试的类的依赖(避免加载spring bean,避免启动服务器)
最近试用了一下Mockito,感觉真的挺方便的.举几个应用实例: 1,需要测试的service中注入的有一个dao,而我并不需要去测试这个dao的逻辑,只需要对service进行测试.这个时候怎么办呢 ...
- [Mockito] Spring Unit Testing with Mockito
It is recommened to write unit testing with Mockito in Spring framework, because it is much faster w ...
- JUnit+Mockito结合测试Spring MVC Controller
[本文出自天外归云的博客园] 概要简述 利用JUnit结合Mockito,再加上spingframework自带的一些方法,就可以组合起来对Spring MVC中的Controller层进行测试. 在 ...
- Spring Test, JUnit, Mockito, Hamcrest 集成 Web 测试
关于Spring 3.2 1. Spring 3.2 及以上版本自动开启检测URL后缀,设置Response content-type功能, 如果不手动关闭这个功能,当url后缀与accept头不一致 ...
随机推荐
- Dapper Miser implementation of CMSIS-DAP, MC HCK as SWD Adapter
Dapper Miser In late 2013, I created a functional implementation of CMSIS-DAP that runs in a low cos ...
- MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数
浮点数保存的字节格式如下: 地址 +0 +1 +2 +3内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM 这里S 代表符号位,1是负,0是正E 偏移127的幂,二进 ...
- 一个最简单的Delphi2010的PNG异形窗口方法
同事演示了一个.NET的的PNG异形窗口.挺漂亮.于是也想用Delphi显摆一个. 关于Delphi用PNG做异形窗口的资料有不少.都是用GDIPlus或者TPNGImage组件加载PNG图像做的.但 ...
- Objective-C内存布局
在我的理解来说: 对象(object)即一块内存,本文要探讨的是一个Objective-C对象在内存的布局(layout)问题,水果的官方文档有说,一个类(class)如果不需要从NSObject继承 ...
- 【k8s】搭建步骤
搭建步骤 基础概念:https://www.cnblogs.com/sxdcgaq8080/p/10640879.html ====================================== ...
- Web安全测试漏洞场景
HTTP.sys 远程代码执行 测试类型: 基础结构测试 威胁分类: 操作系统命令 原因: 未安装第三方产品的最新补丁或最新修订程序 安全性风险: 可能会在 Web 服务器上运行远程命 ...
- Raspbian 中国软件源
转自:http://shumeipai.nxez.com/2013/08/31/raspbian-chinese-software-source.html 花了些时间整理了目前最新的树莓派中国大陆地区 ...
- SharePoint Online 创建和使用栏
前言 本文介绍如何在Office 365中创建和使用栏. 正文 通过登录地址登录到Office 365的SharePoint Online站点中,我们可以在右上角的设置菜单中,进入网站内容: 找到我们 ...
- 权力的游戏第七季/全集Game of Thrones迅雷下载
艾美及金球奖获奖HBO原创剧集<权力的游戏>第七季将于2016年夏天晚些时候开拍.新的一季共有七集,主要拍摄地为北爱尔兰,部分镜头也将在西班牙和冰岛取景.上映时间预计将略有推迟,至2017 ...
- VS2010Web默认的浏览器设置和VS里调试JavaScript代码的设置
前言 重装系统后,VS调用的Web浏览器不是IE了,VS调式不了JavaScript代码了.这两天一直在试终于搞定了.这里查找的问题当然主要是VS里面调式JavaScript代码了. 第一种方式设置V ...