MOCKITO 应用示例
package com.paic.wms.service.auditflow.impl;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.paic.mms.dto.PsPaicEmpInfoDTO;
import com.paic.wp.dao.system.AuditFlowDAO;
import com.paic.wp.service.system.AuditFlowServiceImpl;
//Let's import Mockitostatically so that the code looks clearer
import static org.mockito.Mockito.*;
//import staticorg.powermock.api.mockito.PowerMockito.*;
public class AuditFlowServiceImplTest {
AuditFlowServiceImpl service;
AuditFlowDAO daoMock;
@Before
public void setUp() throws Exception {
service = new AuditFlowServiceImpl();
daoMock = mock(AuditFlowDAO.class);
service.setAuditFlowDAO(daoMock);
}
@Test
public final void testSelectPsEmpInfoByUm() throws Exception {
testUmIsNull();
testUmIsNotNullAndPaPaicEmpInfoListIsNull();
testUmIsNotNullAndPaPaicEmpInfoListIsNotNull();
}
@Test
public final void testSelectPsEmpInfoByUmOrName() throws Exception {
testUmIsNullForByUmOrName();
testUmIsNotNullAndPaPaicEmpInfoListIsNullForByUmOrName();
testUmIsNotNullAndPaPaicEmpInfoListIsNotNullForByUmOrName();
}
@After
public void tearDown() throws Exception {
service = null;
}
private void testUmIsNotNullAndPaPaicEmpInfoListIsNotNull() throws Exception{
//given
String um = "zhengxinliang001";
List<PsPaicEmpInfoDTO> list = getPsPaicEmpInfoList();
//when
when(daoMock.selectPsEmpInfoByUm("zhengxinliang001")).thenReturn(list);
PsPaicEmpInfoDTO dto = service.selectPsEmpInfoByUm(um);
//then
assertEquals("郑新良", dto.getLAST_NAME());
}
private List<PsPaicEmpInfoDTO> getPsPaicEmpInfoList() {
PsPaicEmpInfoDTO dtoInServer = new PsPaicEmpInfoDTO();
dtoInServer.setPAIC_UM_NUM("zhengxinliang001");
dtoInServer.setLAST_NAME("郑新良");
dtoInServer.setDEPTID("10000000");
dtoInServer.setDEPT_NAME("平安机构");
List<PsPaicEmpInfoDTO> list = newArrayList<PsPaicEmpInfoDTO>();
list.add(dtoInServer);
return list;
}
private void testUmIsNotNullAndPaPaicEmpInfoListIsNull() throws Exception {
//given
String um = "noBody001";
//when
when(daoMock.selectPsEmpInfoByUm("noBody001")).thenReturn(null);
PsPaicEmpInfoDTO dto = service.selectPsEmpInfoByUm(um);
//then
assertEquals(dto, null);
}
private void testUmIsNull() throws Exception {
//given
String um = null;
//when
when(daoMock.selectPsEmpInfoByUm("")).thenReturn(null);
PsPaicEmpInfoDTO dto = service.selectPsEmpInfoByUm(um);
//then
assertEquals(dto, null);
}
//当um账号存在的时候
private void testUmIsNotNullAndPaPaicEmpInfoListIsNotNullForByUmOrName()throws Exception{
//given
String um = "zhengxinliang001";
//when
when(daoMock.selectPsEmpInfoByUmOrName(um)).thenReturn(getPsPaicEmpInfoList());
String umInfoFromService = service.selectPsEmpInfoByUmOrName(um);
//then
JSONObject umInfo = getPsEmpInfoJSON();
assertEquals(umInfo.toString(), umInfoFromService);
}
private JSONObject getPsEmpInfoJSON() {
JSONObject umInfo = new JSONObject();
umInfo.put("um", "zhengxinliang001");
umInfo.put("name", "郑新良");
umInfo.put("deptNo", "10000000");
umInfo.put("deptName", "平安机构");
JSONArray empArray = new JSONArray();
empArray.put(umInfo);
JSONObject returnJSON = new JSONObject();
returnJSON.put("size", 1);
returnJSON.put("zhengxinliang001", empArray);
return returnJSON;
}
//um账号不存在的时候
private void testUmIsNotNullAndPaPaicEmpInfoListIsNullForByUmOrName()throws Exception{
//given
String um = null;
//when
when(daoMock.selectPsEmpInfoByUm("noBody001")).thenReturn(null);
String umInfoFromService = service.selectPsEmpInfoByUmOrName(um);
//then
JSONObject umInfo = new JSONObject();
umInfo.put("size", "0");
assertEquals(umInfoFromService, umInfo.toString());
}
//当um账号是空的时候
private void testUmIsNullForByUmOrName() throws Exception {
//given
String um = null;
//when
when(daoMock.selectPsEmpInfoByUm("")).thenReturn(null);
String umInfoFromService = service.selectPsEmpInfoByUmOrName(um);
//then
JSONObject umInfo = new JSONObject();
umInfo.put("size", "0");
assertEquals(umInfoFromService, umInfo.toString());
}
}
MOCKITO 应用示例的更多相关文章
- Mockito常用方法及示例
Mockit是一个开源mock框架,官网:http://mockito.org/,源码:https://github.com/mockito/mockito 要使用Mockit,首先需要在我们工程中引 ...
- [译]Google官方关于Android架构中MVP模式的示例
概述 该示例(TODO-MVP)是后续各种示例演变的基础,它主要演示了在不带架构性框架的情况下实现M-V-P模式.其采用手动依赖注入的方式来提供本地数据源和远程数据源仓库.异步任务通过回调处理. 注意 ...
- JUnit + Mockito 单元测试(二)
摘自: http://blog.csdn.net/zhangxin09/article/details/42422643 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 入门 ...
- 转:Android官方MVP架构示例项目解析
转自: http://www.infoq.com/cn/articles/android-official-mvp-architecture-sample-project-analysis 作者 吕英 ...
- JavaEE参考示例 SpringSide 4.0 GA版杀青
SpringSide是以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中的主流技术选型,较佳实践的总结与演示. 经过漫长的7个月和6个R ...
- [转载]5分钟了解Mockito
原文链接: http://liuzhijun.iteye.com/blog/1512780/ 5分钟了解Mockito 博客分类: Open SourceJava 一.什么是mock测试,什么是moc ...
- JUnit + Mockito 单元测试(二)(good)
import org.junit.Test; import org.mockito.Matchers; import org.mockito.Mockito; import java.util.Lis ...
- Google官方MVP模式示例项目解析 todo-mvp
转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6700668.html 引言:在Google没有给出一套权威的架构实现之前,很多App项目在架构方面都有或多 ...
- 单元测试系列:Mock工具之Mockito实战
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6780719.html 在实际项目中写单 ...
随机推荐
- DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法
有时候我们须要在控件中绑定DataTable中设定条件过滤后的数据,此时,在winForm环境中,一些控件不能正确绑定并显示数据内容.这是由于DataTable.Select()返回的是DataRow ...
- hdu1730 Northcott Game,Nim-sum
题解: 转化成求Nim-sum 每行黑白棋的初始间距作为每堆石子个数 假设当前为P态,则无论当前选手如何操作,下一个选手都能使其操作后的局面又变为P态. Nim-sum = 0,即P态. #inclu ...
- UNIX网络编程——网络数据包检测
网络数据包检测 数据包捕获(sniffer):是指在网络上进行数据收集的行为,需要通过网卡来完成. 三种访问方式: BSD Packet Filter(BPF) SVR4 Datalink Provi ...
- Wakelock API详解
官方资料 http://developer.android.com/intl/zh-CN/reference/android/os/PowerManager.WakeLock.html http:/ ...
- C - 链表,推荐
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Descr ...
- JAVA中MESSAGEBOX,静态类直接引用
原文:JAVA中MESSAGEBOX,静态类直接引用 package cisdi.mes.wrm.mcode.serviceImpl; import javax.persistence.Entity; ...
- jQuery格式化时间插件formatDate
一.不传时间 $.formatDate("yyyy-MM-dd HH:mm:ss"); 二.传时间 $.formatDate("yyyy-MM-dd HH:mm:ss ...
- 初探 FFT/DFT
有用的学习链接&书籍 傅立叶变化-维基百科 离散傅立叶变化-维基百科·长整数与多项式乘法 维基百科看英文的更多内容&有趣的图 快速傅立叶变化-百度百科,注意其中的图! 组合数学(第4版 ...
- struts2之高危远程代码执行漏洞,可造成服务器被入侵,下载最新版本进行修复
Struts2 被发现存在新的高危远程代码执行漏洞,可造成服务器被入侵,只要是Struts2版本 低于 2.3.14.3 全部存在此漏洞.目前官方已经发布了最新的版本进行修复.请将stru ...
- 在uboot里面加入环境变量使用run来运行
Author:杨正 Date:2014.11.11 Email:yz2012ww@gmail.com QQ:1209758756 在移植uboot的时候,能够在uboot里面加入定义一些自己的环 ...