本文将详细介绍下使用Spring Boot 2.X 集成单元测试,对API(Controller)测试的过程。

一、实现原理

使用MockMvc发起请求,然后执行API中相应的代码,在执行的过程中使mock模拟底层数据的返回,最后结果验证。

二、常用注解介绍

@SpringBootTest是SpringBoot的一个用于测试的注解,通过SpringApplication在测试中创建ApplicationContext。

@AutoConfigureMockMvc是用于自动配置MockMvc。

@RunWith在JUnit中有很多个Runner,他们负责调用你的测试代码,每一个Runner都有各自的特殊功能,你要根据需要选择不同的Runner来运行你的测试代码。

@Before在每个测试方法前执行,一般用来初始化方法。

@After在每个测试方法后执行,在方法执行完成后要做的事情。

三、主要代码

  1. 引入测试jar包
    <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
  1. 测试类中添加注解和测试代码
package com.example.helloSpringBoot;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers; @RunWith(SpringRunner.class)
@SpringBootTest(classes = {HelloSpringBootApplication.class})
@AutoConfigureMockMvc //测试接口用
public class HelloControllerTest { private static final Logger log = LoggerFactory.getLogger(HelloControllerTest.class); @Before
public void testBefore(){
log.info("测试前");
} @After
public void testAfter(){
log.info("测试后");
} @Autowired
private MockMvc mockMvc; /**
* 测试 /mockTest
*
*
*/
@Test
public void mockTest()throws Exception{
MvcResult mvcResult=mockMvc.perform(MockMvcRequestBuilders.get("/mockTest")).
andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
int status=mvcResult.getResponse().getStatus();
//打印出状态码,200就是成功
log.info("状态码="+status);
Assert.assertEquals(200,status);
} }
  1. 运行mockTest

运行成功后截图如下:

上述三步操作完成后即可实现对API(Controller)测试,有问题欢迎留言沟通哦!

完整源码地址:https://github.com/suisui2019/helloSpringBoot

推荐阅读

1.Spring Boot入门-快速搭建web项目
2.Spring Boot 2.X 整合Redis
3.Spring Boot 2.X 如何优雅的解决跨域问题?
4.Spring Boot 2.X 如何添加拦截器?
5.Spring Boot 2.X 集成spring session实现session共享
6.Redis Cluster搭建高可用Redis服务器集群
7.为什么单线程的Redis这么快?
8.一篇文章搞定SpringMVC参数绑定
9.SpringMVC+Mybatis 如何配置多个数据源并切换?

限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。

资料传送门:  https://mp.weixin.qq.com/s/u2b_NVNuMuAPE0w4lc45fw

关注下方公众号即可免费领取:

最新文章

  1. ansible 初探nginx安装
  2. (转)Shell函数
  3. 可视化工具solo show-----Prefuse自带例子GraphView讲解
  4. usb驱动开发18之设备生命线
  5. 连通图模板(HDU 1269)
  6. poj 1611 The Suspects 解题报告
  7. java基础回顾(五)——Stack、Heap
  8. IOS中bounds和frame
  9. Python批量读取人脸图片与数据互相转换
  10. 【数学】HDU 5753 Permutation Bo
  11. Hbase 计数器
  12. java学习笔记2——Eclipse的安装及汉化图解
  13. Spring MVC新手教程(二)
  14. javascript中filter的用法
  15. PHP技能树
  16. Windows与Linux的命令行命令对比
  17. Tomcat中acceptCount,maxConnections、maxThreads的含义及关系
  18. matlab中的reshape快速理解,卷积和乘积之间的转换
  19. Linux系统一本通(实用篇)
  20. if 循环的深入理解 哈希表的一种应用

热门文章

  1. SVN服务器搭建--Subversio与TortoiseSVN的配置安装(Windows)
  2. 原生javascript写自己的运动库(匀速运动篇)
  3. IBM x3850 RAID5数据恢复过程
  4. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用FairyGUI (二)
  5. flock SUSE/RHEL
  6. Java中的queue和deque对比详解
  7. 【java错误】Non-terminating decimal expansion; no exact representable decimal result
  8. java 23种设计模式教程
  9. (WCF初体验)WCF的认证和消息保护
  10. ucloud mysql