• 【Spring Boot】SpringBoot 单元测试


    一. 什么是单元测试

    单元测试(unit testing),是指对软件中的最⼩可测试单元进⾏检查和验证的过程就叫单元测试。

    二. 单元测试的好处

    1、可以⾮常简单、直观、快速的测试某⼀个功能是否正确。
    2、使⽤单元测试可以帮我们在打包的时候,发现⼀些问题,因为在打包之前,所以的单元测试必须通过,否则不能打包成功。
    3、使⽤单元测试,在测试功能的时候,可以不污染连接的数据库,也就是可以不对数据库进⾏任何改变的情况下测试功能。(需要 @Transactional 注解)

    三. Spring Boot 单元测试

    Spring Boot 项⽬创建时会默认单元测试框架 spring-boot-test,⽽这个单元测试框架主要是依靠另⼀个著名的测试框架 JUnit 实现的,打开 pom.xml 就可以看到:

    在这里插入图片描述

    单元测试的实现步骤

    1. ⽣成单元测试类

    在要测试的类中右键 -> generate -> test
    在这里插入图片描述

    ⽣成的代码:

    class UserMapperTest {
        @Test
        void findUserByName() {
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这个时候,此⽅法是不能调⽤到任何单元测试的⽅法的,此类只⽣成了单元测试的框架类,具体的业务代码要自己填充。

    注意: 生成的单元测试的类的位置放在 test 对应的目录下

    1. 添加单元测试代码

    1.添加 Spring Boot 框架测试注解:@SpringBootTest

    @SpringBootTest // 表明当前单元测试是在 Spring Boot 环境下的, 不加上这个注解的话, 无法注入要使用的类
    class UserMapperTest {
    
        @Test
        void findUserByName() {
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.添加单元测试业务逻辑

    
    @SpringBootTest
    class UserMapperTest {
    
        @Resource
        private UserMapper userMapper;
    
    
        @Test
        void findUserByName() {
            User user = userMapper.findUserByName("zhaoliu");
            // 使⽤断⾔判断最终的结果是否符合预期
            Assertions.assertNotNull(user);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    如果想要不污染数据库的话可以在类上或者方法上加上 @Transactional 注解, 这样测试完会自动回滚.

    	@Transactional
        @Test
        void findUserByName() {
            User user = userMapper.findUserByName("zhaoliu");
            // 使⽤断⾔判断最终的结果是否符合预期
            Assertions.assertNotNull(user);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    简单的断⾔说明:

    方法说明
    assertEquals判断两个对象或者原始类型是否相等
    assertNotEquals判断两个对象或者原始类型是否不相等
    assertSame判断两个对象引用是否指向同一个对象
    assertNotSame判断两个对象引用是否指向不同对象
    assertTrue判断给定的 布尔值是否为 true
    assertFalse判断给定的 布尔值是否为 false
    assertNull判断给定的对象引用是否为 null
    assertNotNull判断给定的对象引用是否不为 null

    好啦! 以上就是 SpringBoot 单元测试 的讲解,希望能帮到你 !
    评论区欢迎指正 !

  • 相关阅读:
    Delphi中的匿名方法
    23种设计模式之备忘录模式(Memento Pattern)
    神经网络在通信中的应用,神经网络及其应用
    ClickHouse学习笔记:01数据类型和基本DDL
    一、pycharm的使用技巧和好用插件
    一、【redux】redux简介 mini版求和Demo
    流程引擎的架构设计
    LLMOps — 使用 BentoML 为 Llama-3 模型提供服务
    PAT 1008 Elevator
    《向量数据库》——Zilliz X Dify.AI ,快速打造知识库 AI 应用
  • 原文地址:https://blog.csdn.net/m0_61832361/article/details/133706792