Junit5单元测试框架原理和实践

简介: Junit5单元测试框架原理和实践

一、JUnit5理论

1.Junit5介绍

Junit5由以下3部分组成:

  1. JUnit Platform是基于JVM的运行测试的基础框架在,它定义了开发运行在这个测试框架上的TestEngine API。此外该平台提供了一个控制台启动器,可以从命令行启动平台,可以为Gradle和 Maven构建插件,同时提供基于JUnit 4的Runner。
  2. JUnit Jupiter是在JUnit 5中编写测试和扩展的新编程模型和扩展模型的组合.Jupiter子项目提供了一个TestEngine在平台上运行基于Jupiter的测试。
  3. JUnit Vintage提供了一个TestEngine在平台上运行基于JUnit 3和JUnit 4的测试。

9D312E29-A949-4352-9C32-A39FBF022F7C

2.常用注解

07D5C05B-204F-4297-AE29-E8C4D8147C32

3.断言方法

常用断言 Assertions

  1. assertEquals 断言预期值和实际值相等
  2. assertAll 分组断言,执行其中包含的所有断言
  3. assertArrayEquals 断言预期数组和实际数组相等
  4. assertFalse 断言条件为假
  5. assertNotNull 断言不为空
  6. assertSame 断言两个对象相等
  7. assertTimeout 断言超时
  8. fail 使单元测试失败

二、JUnit5结合Springboot实践

1.pom依赖

采用Springboot2.7.x 版本结合Junit进行验证,在这个版本中默认依赖的就是Junit5。添加pom依赖时将junit-vintage-engine加入到exclusion中,是为了排除Junit4 API被误引入。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

2.IDEA中自动生成单元测试

在IDEA中右键方法,选择Generate选项,即可自动生成单元测试类和方法。

132E4117-ADB3-49A9-85CB-56236DDD1973

33E5BE81-CFF0-466F-87AE-D748E10BBCA4

3.测试类中注解的使用

针对Junit5,只需要加上注解:@SpringBootTest,他的作用是加载ApplicationContext容器。

@SpringBootTest

注意:如果使用的是Junit4,则还需要加上注解:@RunWith(SpringRunner.class),他的作用是启动测试器,保障Junit4的@Test注解能在ApplicationContext容器中生效。

@RunWith(SpringRunner.class)

参考资料

  1. 单元测试 - Junit5 详解:https://www.pdai.tech/md/develop/ut/dev-ut-x-junit5.html
  2. 【SpringBoot深入浅出系列】SpringBoot之集成JUnit5进行单元测试:https://bbs.huaweicloud.com/blogs/349189
  3. Spring Boot 集成 JUnit5,更优雅单元测试!:https://cloud.tencent.com/developer/article/2271888?areaSource=&traceId=
  4. Junit5 官网:https://junit.org/junit5/?spm=a2c6h.12873639.article-detail.5.3f0c1fdajVdpUK
  5. Springboot 单元测试 @SpringBootTest 与 RunWith:https://blog.csdn.net/howeres/article/details/108339464 (重点讲了@SpringBootTest和@RunWith 区别)
目录
相关文章
|
6月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
6月前
|
数据采集 存储 人工智能
从0到1:天猫AI测试用例生成的实践与突破
本文系统阐述了天猫技术团队在AI赋能测试领域的深度实践与探索,讲述了智能测试用例生成的落地路径。
从0到1:天猫AI测试用例生成的实践与突破
|
6月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
332 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
6月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
638 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
7月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
473 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
7月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
531 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
10月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1454 23
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1934 24
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
1070 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡