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头不一致 ...
随机推荐
- Why I don’t read books
http://dougmccune.com/blog/2007/03/23/why-i-dont-read-books/ I’ve never read a programming book. I r ...
- 解决ubuntu上在androidstudio中启动emulator闪退的问题(2)
平台 Ubuntu14.04 64 现象 在AndrodStudio中点击模拟器的启动按钮后,模拟器界面弹出后,又立刻闪退. 解决 一.查看模拟器的信息 从上面可以看到模拟器的存放路径以及名称: 路径 ...
- Odoo进销存(采购、销售、仓库)入门教程 - 上
转载地址:http://blog.csdn.net/wangnan537/article/details/46434373 运行环境: Ubuntu14.04+Odoo8.0 作者:苏州-微尘 0. ...
- Mac下启动AndroidStudio失败
系统环境: OSX Yosemite 10.10.1 (14B25) JAVA版本:1.8.0_11 Android Studio 版本:1.0.1 问题:Android Studio was una ...
- 用自定义的RoundImageView来实现圆形图片(可加边框)
本文的控件来自:http://blog.csdn.net/alan_biao/article/details/17379925 这个控件不同于之前介绍过的那个框架,这个仅仅能过将图片裁剪为圆形,没能弄 ...
- golang的Flag和Pflag
Flag和Pflag类似于python的argparse:解析命令行 flag是golang自带的包:github.com/spf13/pflag 参考:https://o-my-chenjian.c ...
- 【VC++积累】之八、PreTranslageMessage;TranslageMessage;GetMessage和PeekMessage的区别
先来看windows消息机制: 首先系统(也就是windows)把来自硬件(鼠标,键盘等消息)和来自应用程序的消息 放到一个系统消息队列中去. 而应用程序需要有自己的消息队列,也就是线程消息队列,每一 ...
- 2.1 jdk-spi的实现原理
dubbo-spi是在jdk-spi的基础上进行重写优化,下面看一下jdk-spi. 一.作用 为接口自动寻找实现类. 二.实现方式 标准制定者制定接口 不同厂商编写针对于该接口的实现类,并在jar的 ...
- 用EntityFramework6完成增删查改和事务【转】
http://www.cnblogs.com/wujingtao/p/5407821.html 上一节我们已经学习了如何使用EF连接数据库,并简单演示了一下如何使用EF6对数据库进行操作,这一节我来详 ...
- LeetCode 114| Flatten Binary Tree to Linked List(二叉树转化成链表)
题目 给定一个二叉树,原地将它展开为链表. 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 解析 通过递归实现:可以用先序遍历, ...