SpringBoot+MyBatis框架的项目单元测试+集成测试(上)
2017-08-29 08:35
621 查看
单元测试
这是我的项目目录结构:其中,所有的SQL操作都在mapper.xml中
单元测试
采用了Mockito
verify方法:
验证方法执行过几次:
verify(tBookController, times(1)).queryTBookByName(captor.capture());
如上代码所示,验证了tBookController的queryTBookByName方法执行了一次,其中captor是用来捕获传入参数的:
ArgumentCaptor<String> captor=ArgumentCaptor.forClass(String.class);。
never() 没有被调用,相当于times(0)
atLeast(N) 至少被调用N次
atLeastOnce() 相当于atLeast(1)
atMost(N) 最多被调用N次
2. 超时验证
verify(mock, timeout(100)).someMethod();
when假设测试条件:
String name = "c++"; List<TBook> result = new ArrayList<TBook>(); for(int i = 0; i < 2; i++){ TBook tb = new TBook(); tb.setBkId(i); tb.setBkName("Spring in action"+i); tb.setBkIsbn("123"+i); tb.setBkPage(100+i); tb.setBkState(i); result.add(tb); } //when是为了假设一个场景 when(tBookController.queryTBookByName(name)).thenReturn(result);
然后通过执行测试方法进行验证:
List<TBook> tbooks = tBookController.queryTBookByName(name); tbooks = tBookController.queryTBookByName(name); tbooks = tBookController.queryTBookByName(name); ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class); verify(tBookController, times(3)).queryTBookByName(captor.capture()); //getValue()得到捕获参数的最近一次赋值, getAllValues()得到所有参数 assertEquals(name, captor.getValue()); assertThat(tbooks, is(result));
测试类的注解和自动注入
@RunWith(MockitoJUnitRunner.class) public class MybatisOpTest { @Mock private TBookController tBookController = new TBookController(); @Autowired private TBookMapper tBookMapper;
其中,@Autowired后面的这个mapper不要也无所谓,因为已经通过@Mock模拟了一个controller。由于这是一个SpringBoot程序,所以也不需要通过@ContextConfiguration注解引入一个xml配置项。
这样就可以通过mock的假数据进行测试了!
集成测试会比较复杂一点,在下一篇里面会具体说明!
相关文章推荐
- SpringBoot+Mybatis框架项目的单元测试和集成测试(下)
- 基于SpringBoot框架的单元测试和集成测试的区别和联系
- 架构实战项目心得(七):使用SpringBoot+Dubbo+Mybatisplus+Oracle搭建后台项目框架(一)
- springboot-mybatis-plus基本项目框架
- 架构实战项目心得(七):使用SpringBoot+Dubbo+Mybatisplus+Oracle搭建后台项目框架(二)
- Spring Boot系列(十) 持久层框架--Mybatis
- springboot+mybatis数据源的读写分离(mysql,后期连接设置,前期项目没做好的忽入会蒙的)
- 搭建spring boot集成mybatis项目入门
- Spring boot框架项目,使用maven命令将配置文件打包到jar包外,项目运行读取jar外配置文件
- 【SSM】SpringMVC、Spring(5.0.3)、MyBatis(3.4.5)三大框架的整合项目入门示例
- Spring+SpringMvc+Mybatis框架集成搭建教程四(项目部署及测试)
- SpringBoot基础教程及框架整合(三)----HelloWorld及单元测试
- springmvc+mybatis+maven项目框架搭建
- maven实现springboot-mybatis框架(1)
- springboot+springmvc+mybatis项目整合
- (开源项目)基于springboot的后台管理系统基本框架
- 搭建SpringBoot-MyBatis-MyBatisGenerator项目
- MyEclipse中搭建spring-boot+mybatis+freemarker框架
- Springboot+Mybatis+Maven项目导出.csv文件
- 在前后端分离的SpringBoot项目中集成Shiro权限框架