spring-test 加 mock
2016-05-13 11:08
323 查看
最近看spring xd的源码,发现他们写的代码测试都是用的 junit spring test mockito,于是自己百度 外加在自己项目中测试一下,感觉还行,效果都达到了。附上代码,备忘。
package com.zh.base;
import static org.mockito.Mockito.when;
import javax.annotation.Resource;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import com.sky.metadata.dao.impl.MetaDataDaoImpl;
import com.sky.metadata.service.impl.MetaDataServiceImpl;
import com.sky.metadata.vo.MetaData;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"/beans.xml"})
public class TestTemplate extends AbstractJUnit4SpringContextTests{
@Resource
@InjectMocks
MetaDataServiceImpl service;
@Mock
MetaDataDaoImpl dao;
@Before
public void setUp(){
MockitoAnnotations.initMocks(this);//执行这段话时,自动将@mock @spy的属性 注入在@InjectMocks对应的service中 test放中的mock when就使用其case
}
@Test
@Transactional
@Rollback(false)
public void testT(){
MetaData metaData = new MetaData();
when(dao.get(1)).thenReturn(metaData);
MetaData metaData2 = service.get(1);
Assert.assertEquals(metaData, metaData2);
}
}
package com.zh.base;
import static org.mockito.Mockito.when;
import javax.annotation.Resource;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import com.sky.metadata.dao.impl.MetaDataDaoImpl;
import com.sky.metadata.service.impl.MetaDataServiceImpl;
import com.sky.metadata.vo.MetaData;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"/beans.xml"})
public class TestTemplate extends AbstractJUnit4SpringContextTests{
@Resource
@InjectMocks
MetaDataServiceImpl service;
@Mock
MetaDataDaoImpl dao;
@Before
public void setUp(){
MockitoAnnotations.initMocks(this);//执行这段话时,自动将@mock @spy的属性 注入在@InjectMocks对应的service中 test放中的mock when就使用其case
}
@Test
@Transactional
@Rollback(false)
public void testT(){
MetaData metaData = new MetaData();
when(dao.get(1)).thenReturn(metaData);
MetaData metaData2 = service.get(1);
Assert.assertEquals(metaData, metaData2);
}
}
相关文章推荐
- java中使用jxl导入导出excel实例及其在spring mvc中的应用
- java实现选择排序
- JAVA多线程之多线程的实现
- Description Resource Path Location Type Java compiler level does not match the version of the instal
- java实现插入排序,增加减少循环的功能
- java发送邮件常见问题(附源代码)
- java实现冒泡排序,设立标志位,减少遍历趟数
- springmvc返回json中文乱码及使用jackson自动转换
- java中截取字符串第二个小数点之前的字符串
- spring 下载地址
- Java进阶读书清单及好书推荐
- mysql连接错误java.sql.SQLException: Unknown system variable 'language'
- Eclipse平台下Android SDK Manager不显示没有安装的程序扩展(不能在Eclipse平台下安装虚拟机)
- Java 类中各成分加载顺序 和 内存中的存放位置
- Java二叉树(三)--非递归的中序_先序_后序遍历二叉树
- Java | AWT Swing
- MyBatis与Spring、SpringMVC整合
- pojo和javaBean的区别
- spring AOP使用
- Struts2 中,相同的验证规则,如何使用同一条异常响应信息,及动态调用各自对应的名称?