SpringBoot @Test单元测试方式

 更新时间:2024年04月19日 15:08:04   作者:偷代码的猫  
这篇文章主要介绍了SpringBoot @Test单元测试方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、普通测试

1.初步了解:springboot一般使用maven搭建工程,在maven工程中存在test包(虽然测试用例是可以存在于src下,但是规范统一是放在test中)

我们的在test包可以同步src下的包结构,针对相应的java类写test用例,在做单元测试这是非常重要的

2.一个简单的测试用例,就像main方法一样

public class UtilTest {
    @Test
    public void currencyTest() throws Exception{
        String uuid = MD5Util.getMd5("测试用例");
 
        System.out.println(uuid);
    }
}

注意到这里我们使用了这个注解@Test,由JUnit提供,它回去扫描带有该注解的方法去调用,从而达到相对应的效果

二、SpringBoot调用测试  

1.我们调用springboot中的controller、service、mapper层时,需要注入它们,需要springboot的相关环境 

2.测试用例:

 
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringBootCatApplication.class)
public class CatTest {
    @Autowired
    private ElasticDao elasticDao;
    @Autowired
    private testService testService;
 
    @Test
    public void testEs() throws Exception{
        ResponseEntity responseEntity = elasticDao.saveAndUpdateBulkList(EsIndexEnum.TEST.type,"test","test");
        System.out.println(responseEntity);
    }
 
    @Test
    public void testTestService() throws Exception{
        ResultEntity ResultEntity = testService.test("1");
        System.out.println(ResultEntity);
    }
}

这里我们添加了两个注解@RunWith@SpringBootTest,可以进入SpringBootTest中查看到这一段代码确认web环境,一般我们将classes指向启动类

SpringBootTest.WebEnvironment webEnvironment() default SpringBootTest.WebEnvironment.MOCK;

三、Junit4单元测试

这个依赖于idea的插件Junit

  • 1、选择要测试的java类
  • 2、按住alt+insert键
  • 3、选择Junit Test
  • 4、选择Junit4
  • 5、生成在test对应包下

测试内容可以选择上述直接调用方法体,也可以是用Junit提供的Mock对象

/**
     * 模拟mvc测试对象
     */
    private MockMvc mockMvc;
 
    /**
     * web项目上下文
     */
    @Autowired
    private WebApplicationContext webApplicationContext;
 
    /**
     * 所有测试方法执行之前执行该方法
     */
    @Before
    public void before() {
        //获取mock对象
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
    }

比较测试结果是否符合预期可以使用

Assert.assertEquals("预期结果", "实际结果");
Assert.assertTrue();
Assert.assertNotNull();
Assert.assertNotEquals();
Assert.assertNull();

我们可以使用Jacoco,来获得我们单元测试的分支覆盖率

这里我就不做过多的描述了,有兴趣可以去了解一下

四、pom.xml依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-test</artifactId>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-test</artifactId>
	<version>2.1.3.RELEASE</version>
</dependency>
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.12</version>
</dependency>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring Cloud gateway 网关如何拦截Post请求日志

    Spring Cloud gateway 网关如何拦截Post请求日志

    这篇文章主要介绍了Spring Cloud gateway 网关如何拦截Post请求日志的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 使用Spring自定义注解实现任务路由的方法

    使用Spring自定义注解实现任务路由的方法

    本篇文章主要介绍了使用Spring自定义注解实现任务路由的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Java 图文并茂讲解主方法中的String[] args参数作用

    Java 图文并茂讲解主方法中的String[] args参数作用

    很多老铁不清楚JAVA主方法中main()里面的的参数是什么意思,以及有什么作用,接下来给大家用最通俗易懂的话来讲解,还不清楚的朋友来看看吧
    2022-04-04
  • SpringBoot拦截器excludePathPatterns方法不生效的解决方案

    SpringBoot拦截器excludePathPatterns方法不生效的解决方案

    这篇文章主要介绍了SpringBoot拦截器excludePathPatterns方法不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • java基本教程之常用的实现多线程的两种方式 java多线程教程

    java基本教程之常用的实现多线程的两种方式 java多线程教程

    下面开始学习“常用的实现多线程的2种方式”:Thread 和 Runnable。之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程
    2014-01-01
  • JavaMail整合Spring实现邮件发送功能

    JavaMail整合Spring实现邮件发送功能

    这篇文章主要为大家详细介绍了JavaMail整合Spring实现邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Java之SpringCloud nocos注册中心讲解

    Java之SpringCloud nocos注册中心讲解

    这篇文章主要介绍了Java之SpringCloud nocos注册中心讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 将bean注入到Spring中的方式总结

    将bean注入到Spring中的方式总结

    在Java的Spring框架中,将bean注入到容器中是核心概念之一,这是实现依赖注入的基础,Spring提供了多种方式来将bean注入到容器中,本文给大家总结了将bean注入到Spring中的几种方式,需要的朋友可以参考下
    2023-12-12
  • Spring整合Struts2的两种方法小结

    Spring整合Struts2的两种方法小结

    下面小编就为大家带来一篇Spring整合Struts2的两种方法小结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 使用Spring Cache和Redis实现查询数据缓存

    使用Spring Cache和Redis实现查询数据缓存

    在现代应用程序中,查询缓存的使用已经变得越来越普遍,它不仅能够显著提高系统的性能,还能提升用户体验,在这篇文章中,我们将探讨缓存的基本概念、重要性以及如何使用Spring Cache和Redis实现查询数据缓存,需要的朋友可以参考下
    2024-07-07

最新评论