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>

总结

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

相关文章

  • springboot+vue项目从第一行代码到上线部署全流程

    springboot+vue项目从第一行代码到上线部署全流程

    本文详细介绍了如何从零开始搭建一个基于Spring Boot和Vue.js的前后端分离项目,并涵盖项目需求分析、技术选型、项目结构设计、前后端交互、部署上线等全过程,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • springboot中动态权限实时管理的实现详解

    springboot中动态权限实时管理的实现详解

    这篇文章主要为大家详细介绍了如何简单实现一个在springboot中动态权限的实时管理,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2024-10-10
  • Java IO读取文件的实例详解

    Java IO读取文件的实例详解

    这篇文章主要介绍了Java IO读取文件的实例详解的相关资料,主要介绍字符流和字节流的内容,需要的朋友可以参考下
    2017-07-07
  • java数据结构之希尔排序

    java数据结构之希尔排序

    这篇文章主要为大家详细介绍了java数据结构之希尔排序的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 如何用Java实现.env文件读取敏感数据

    如何用Java实现.env文件读取敏感数据

    这篇文章主要介绍了如何用Java实现.env文件读取敏感数据,并提供了一个自动配置类EnvAutoConfiguration,common-env-starter-demo模块展示了如何配置和启动一个简单的Spring Boot应用程序,需要的朋友可以参考下
    2025-02-02
  • IDEA配置Maven教程的超详细讲解版

    IDEA配置Maven教程的超详细讲解版

    IntelliJ IDEA是当前最流行的Java IDE(集成开发环境)之一,也是业界公认最好用的Java开发工具之一,这篇文章主要给大家介绍了关于IDEA配置Maven教程的超详细讲解版,需要的朋友可以参考下
    2023-11-11
  • IDEA Servlet 模板设置的方法

    IDEA Servlet 模板设置的方法

    这篇文章主要介绍了IDEA Servlet 模板设置的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 判断以逗号分隔的字符串中是否包含某个数的实例

    判断以逗号分隔的字符串中是否包含某个数的实例

    下面小编就为大家带来一篇判断以逗号分隔的字符串中是否包含某个数的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JavaWeb开发实现备忘录

    JavaWeb开发实现备忘录

    这篇文章主要为大家详细介绍了JavaWeb开发实现备忘录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • java中long数据类型转换为int类型

    java中long数据类型转换为int类型

    这篇文章主要讲解Java中基本数据类型,java long 类型与其java int类型的转换的几种方法,希望能给大家做一个参考
    2016-07-07

最新评论