Spring Boot 2.X 快速集成单元测试解析

 更新时间:2019年08月13日 08:54:24   作者:java_lover  
这篇文章主要介绍了Spring Boot 2.X 快速集成单元测试解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、实现原理

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

二、常用注解介绍

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

@AutoConfigureMockMvc是用于自动配置MockMvc。

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

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

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

三、主要代码

引入测试jar包

 <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
  </dependency>

测试类中添加注解和测试代码

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);
 }
}

运行mockTest

运行成功后截图如下:

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • spring boot上传文件出错问题如何解决

    spring boot上传文件出错问题如何解决

    这篇文章主要介绍了spring boot上传文件出错问题如何解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • JavaFX 监听窗口关闭事件实例详解

    JavaFX 监听窗口关闭事件实例详解

    这篇文章主要介绍了JavaFX 监听窗口关闭事件实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • Spring详细解读事务管理

    Spring详细解读事务管理

    Spring事务的本质就是对数据库事务的支持,没有数据库事务,Spring是无法提供事务功能的。Spring只提供统一的事务管理接口,具体实现都是由数据库自己实现的,Spring会在事务开始时,根据当前设置的隔离级别,调整数据库的隔离级别,由此保持一致
    2022-04-04
  • Java Web关键字填空示例详解

    Java Web关键字填空示例详解

    最近在工作中使用了java web,发现有些难度,下面这篇文章主要给大家介绍了关于Java Web关键字填空的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 图文详解Java中class的初始化顺序

    图文详解Java中class的初始化顺序

    网上有很多关于Java中class的初始化顺序文章,但是本文通过图文更加详细的介绍了Java中class的初始化顺序,并对class的装载顺序进行了讲解,下面一起来看看。
    2016-08-08
  • hibernate一对多关联映射学习小结

    hibernate一对多关联映射学习小结

    这篇文章主要介绍了hibernate一对多关联映射学习小结,需要的朋友可以参考下
    2017-09-09
  • springAOP中用joinpoint获取切入点方法的参数操作

    springAOP中用joinpoint获取切入点方法的参数操作

    这篇文章主要介绍了springAOP中用joinpoint获取切入点方法的参数操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java程序员必备的11大IntelliJ插件(附地址)

    Java程序员必备的11大IntelliJ插件(附地址)

    这篇文章主要介绍了Java程序员必备的11大IntelliJ插件(附地址),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Java集合List与Array的相互转换

    Java集合List与Array的相互转换

    本篇文章主要介绍了Java集合List与Array的相互转换,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 如何在IDEA Maven项目中导入本地jar包的步骤

    如何在IDEA Maven项目中导入本地jar包的步骤

    今天小编就为大家分享一篇关于IDEA Maven项目中导入本地jar包的步骤,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12

最新评论