转载: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>

以下例:

  1. 被测类:ConnInfoService
  2. 依赖类: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);
}
    1. @InjectMocks用于标识被测对象,从而把由@mock表示的依赖对象自动注入到被测对象中
    2. @Mock用于表示依赖对象
    3. MockitoAnnotations.initMocks(this);用于初始化以上注入动作
    4. when(connInfoAccessor.getConnInfo("connId")).thenReturn(gpsConnInfo)用于模拟带返回值的getConnInfo方法的处理
    5. doThrow(new DataAccessException("e") { 
      @Override 
      public String getMessage() { 
      return super.getMessage(); 

      }).when(connInfoAccessor).saveConnInfo("connId", gpsConnInfo);
      用于模拟无返回值的saveConnInfo方法抛出异常的行为

spring结合mockito的更多相关文章

  1. 基于spring与mockito单元测试Mock对象注入

    转载:http://www.blogjava.net/qileilove/archive/2014/03/07/410713.html 1.关键词 单元测试.spring.mockito 2.概述 单 ...

  2. spring中使用mockito

    1 mockito介绍和入门 官方:https://github.com/mockito/mockito 入门: 5分钟了解Mockito http://liuzhijun.iteye.com/blo ...

  3. 【项目经验】Mockito教程

    一.教程 转载:https://blog.csdn.net/sdyy321/article/details/38757135/ 官网: http://mockito.org API文档:http:// ...

  4. Mockito 简介

    Mockito 是一种 Java Mock 框架,主要是用来做 Mock 测试,它可以模拟任何 Spring 管理的 Bean.模拟方法的返回值.模拟抛出异常等等,在了解 Mockito 的具体用法之 ...

  5. @MockBean 注解后 bean成员对象为 null?

    笔者在写自测的时候遇到的问题: 我想模拟一个Bean,并在之后使用Mockito打桩,于是使用了 @MockBean 注解(spring集成mockito的产物),但代码编写好了后启动测试却报Null ...

  6. Spring Boot中采用Mockito来mock所测试的类的依赖(避免加载spring bean,避免启动服务器)

    最近试用了一下Mockito,感觉真的挺方便的.举几个应用实例: 1,需要测试的service中注入的有一个dao,而我并不需要去测试这个dao的逻辑,只需要对service进行测试.这个时候怎么办呢 ...

  7. [Mockito] Spring Unit Testing with Mockito

    It is recommened to write unit testing with Mockito in Spring framework, because it is much faster w ...

  8. JUnit+Mockito结合测试Spring MVC Controller

    [本文出自天外归云的博客园] 概要简述 利用JUnit结合Mockito,再加上spingframework自带的一些方法,就可以组合起来对Spring MVC中的Controller层进行测试. 在 ...

  9. Spring Test, JUnit, Mockito, Hamcrest 集成 Web 测试

    关于Spring 3.2 1. Spring 3.2 及以上版本自动开启检测URL后缀,设置Response content-type功能, 如果不手动关闭这个功能,当url后缀与accept头不一致 ...

随机推荐

  1. 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 ...

  2. MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数

    浮点数保存的字节格式如下: 地址 +0 +1 +2 +3内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM 这里S 代表符号位,1是负,0是正E 偏移127的幂,二进 ...

  3. 一个最简单的Delphi2010的PNG异形窗口方法

    同事演示了一个.NET的的PNG异形窗口.挺漂亮.于是也想用Delphi显摆一个. 关于Delphi用PNG做异形窗口的资料有不少.都是用GDIPlus或者TPNGImage组件加载PNG图像做的.但 ...

  4. Objective-C内存布局

    在我的理解来说: 对象(object)即一块内存,本文要探讨的是一个Objective-C对象在内存的布局(layout)问题,水果的官方文档有说,一个类(class)如果不需要从NSObject继承 ...

  5. 【k8s】搭建步骤

    搭建步骤 基础概念:https://www.cnblogs.com/sxdcgaq8080/p/10640879.html ====================================== ...

  6. Web安全测试漏洞场景

    HTTP.sys 远程代码执行   测试类型: 基础结构测试   威胁分类: 操作系统命令   原因: 未安装第三方产品的最新补丁或最新修订程序   安全性风险: 可能会在 Web 服务器上运行远程命 ...

  7. Raspbian 中国软件源

    转自:http://shumeipai.nxez.com/2013/08/31/raspbian-chinese-software-source.html 花了些时间整理了目前最新的树莓派中国大陆地区 ...

  8. SharePoint Online 创建和使用栏

    前言 本文介绍如何在Office 365中创建和使用栏. 正文 通过登录地址登录到Office 365的SharePoint Online站点中,我们可以在右上角的设置菜单中,进入网站内容: 找到我们 ...

  9. 权力的游戏第七季/全集Game of Thrones迅雷下载

    艾美及金球奖获奖HBO原创剧集<权力的游戏>第七季将于2016年夏天晚些时候开拍.新的一季共有七集,主要拍摄地为北爱尔兰,部分镜头也将在西班牙和冰岛取景.上映时间预计将略有推迟,至2017 ...

  10. VS2010Web默认的浏览器设置和VS里调试JavaScript代码的设置

    前言 重装系统后,VS调用的Web浏览器不是IE了,VS调式不了JavaScript代码了.这两天一直在试终于搞定了.这里查找的问题当然主要是VS里面调式JavaScript代码了. 第一种方式设置V ...