Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理

文章目录

  • Pre
  • Junit4 / Junit5 / Spring Boot / IDEA
    • IDEA版本
    • Spring-Boot-Older-Release-Notes
    • @SpringBootTest 起源 & Spring-Boot-1.4-Release-Notes
    • 2.0.0.RELEASE ----- 2.0.9.RELEASE
    • 2.1.0.RELEASE ----- 2.1.18.RELEASE
    • 2.2.0.RELEASE ~ 2.2.13.RELEASE
    • 2.3.0.RELEASE ~ 2.3.12.RELEASE
    • 2.4 ~2.7 随后版本类似 ,只是更新 junit5版本
    • 3.x 随后版本类似 ,只是更新 junit5版本
  • junit4 vs junit5

在这里插入图片描述


Pre

SpringBoot - 单元测试利器Mockito入门

SpringBoot - 应用程序测试方案

SpringBoot - @SpringBootTest加速单元测试的小窍门


Junit4 / Junit5 / Spring Boot / IDEA

IDEA版本

我这里用的是 2022

在这里插入图片描述

版本不同,主要跟生成的模板代码有关系
在这里插入图片描述


Spring-Boot-Older-Release-Notes

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-Older-Release-Notes


@SpringBootTest 起源 & Spring-Boot-1.4-Release-Notes

在这里插入图片描述

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.4-Release-Notes

在这里插入图片描述

在这里插入图片描述

  • 我们可以看到 新增的 @SpringBootTest注解 依然是采用 junit4 。

  • 当然了1.0.0.RELEASE ~ 1.0.3.RELEASE的版本也是使用的 junit4 (版本不同) ,只是没有提供 @SpringBootTest注解

在这里插入图片描述


2.0.0.RELEASE ----- 2.0.9.RELEASE

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes

在这里插入图片描述

在这里插入图片描述


2.1.0.RELEASE ----- 2.1.18.RELEASE

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.1-Release-Notes
在这里插入图片描述
在这里插入图片描述


2.2.0.RELEASE ~ 2.2.13.RELEASE

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.2-Release-Notes

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2.3.0.RELEASE ~ 2.3.12.RELEASE

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


2.4 ~2.7 随后版本类似 ,只是更新 junit5版本

在这里插入图片描述


3.x 随后版本类似 ,只是更新 junit5版本

在这里插入图片描述

这里我们以大版本3.x 为例 看一下

在这里插入图片描述


junit4 vs junit5

JUnit 4 和 JUnit 5 是 Java 中用于编写单元测试的两个主要框架。它们有一些重要的区别,包括以下几个方面:

  1. 架构和模块化

    • JUnit 4 是一个单一的 JAR 文件,没有明确定义的模块系统。测试类通常继承自 TestCase 类,使用 @Test 注解来标识测试方法。
    • JUnit 5 更加模块化,它将不同的功能分解成多个模块,例如 junit-jupiter-api 用于编写测试,junit-jupiter-engine 用于运行测试,junit-platform-commons 用于共享工具等。这使得用户可以选择性地添加所需的功能。
  2. 扩展性

    • JUnit 4 的扩展是通过 @RunWithTestRule 来实现的,有一些限制。
    • JUnit 5 提供了更强大的扩展模型,称为 Jupiter 扩展模型,允许用户创建自定义扩展来修改测试执行过程,这些扩展可以通过 @ExtendWith 注解应用到测试类。
  3. 注解

    • JUnit 4 使用 @Test 注解来标识测试方法,还有其他一些用于设置测试环境的注解,如 @Before@After
    • JUnit 5 使用了一组新的注解,例如 @Test, @BeforeEach, @AfterEach, @BeforeAll, 和 @AfterAll。这些注解提供了更多的灵活性和可读性。
  4. 断言

    • JUnit 4 使用 Assert 类中的静态方法来执行断言。
    • JUnit 5 提供了一组新的断言方法,它们更加丰富和表达力强,包括 assertNotNull, assertThrows, 和 assertTimeout 等。
  5. 参数化测试

    • JUnit 4 支持参数化测试,但需要使用 @Parameters 注解和一个特殊的方法来定义参数。
    • JUnit 5 引入了更强大的参数化测试功能,通过 @ParameterizedTest 注解和 @MethodSource@CsvSource 等注解来支持参数化测试,使其更易于使用和理解。
  6. 条件测试

    • JUnit 4 缺乏内置的条件测试支持。
    • JUnit 5 引入了 @EnabledOnOs@EnabledIf@EnabledIfSystemProperty,等注解,可以根据条件来启用或禁用测试。
  7. 动态测试

    • JUnit 5 支持动态测试,可以在运行时生成测试用例,而不需要在编译时知道所有测试情况。

在这里插入图片描述

总的来说,JUnit 5 引入了许多改进和新功能,使得编写和管理测试更加灵活和强大。然而,迁移到 JUnit 5 需要一些工作,特别是如果你的项目已经使用了 JUnit 4。最佳选择取决于你的具体需求和项目的情况。如果你正在开始一个新项目,那么考虑使用 JUnit 5,因为它提供了更多的功能和灵活性。如果你的项目已经使用 JUnit 4,那么可以逐步迁移到 JUnit 5,以便利用新功能和改进。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/107401.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BIO NIO AIO演变

Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty简化了网络程序的开发,是很多框架和公司都在使用的技术。 Netty并非横空出世,它是在BIO,NIO,AIO演变中的产物…

自动化驱动程序管理

在部署操作系统时,每次都从下载和分发所需的驱动程序中实现真正的独立性可能是一场艰苦的战斗。特别是具有硬件多样化的环境,并且需要支持新的硬件类型时。借助 OS Deployer,可以对所有端点使用一个映像,无论品牌和型号如何&#…

成都都市圈公共图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

成都都市圈公共图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

【工作记录】MQTT介绍、安装部署及springboot集成@20230912

背景 近期公司可能会有物联网设备相关项目内容,提前对用到的mqtt协议做预研和初步使用。 最初接触到mqtt协议应该是早些年的即时通讯吧,现在已经是物联网设备最热门的协议了。 作为记录,也希望能帮助到需要的朋友。 MQTT介绍 《MQTT 协议规…

怎么把flac转换为mp3?方法操作极其简单

怎么把flac转换为mp3?作为热衷音乐的发烧友,您定会对一些高品质的音频作品情有独钟,而其中最经典的非FLAC音频格式莫属。FLAC以其无损压缩的特性而备受赞誉,完美地保留了音频数据的原汁原味和细腻之处。然而,FLAC文件的…

Python第一次作业练习

题目分析: """ 参考学校的相关规定。 对于四分制,百分制中的90分及以上可视为绩点中的4分,80 分及以上为3分,70 分以上为2分,60 分以上为1分; 五分制中的5分为四分制中的4分,4分为3分&#…

人类文明之光,历史上最伟大的10位程序员

21世纪,被称作计算机的时代,程序员是其中不可或缺的组成部分。不夸张的说,他们贡献改变了我们人类的整个文明进程。今天我们就来看看人类历史上最伟大的10位程序员。 丹尼斯里奇(Dennis Ritchie):C语言之父…

41 个下载免费 3D 模型的最佳网站

推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 1. Pikbest Pikbest是一个设计资源平台,提供超过3万件创意艺术品。您可以在Pikbest上找到设计模板,演示幻灯片,视频和音乐等。您可以找到不同的3D模型,例如婚礼装饰&…

小程序中如何给会员一键拨号

一键拨号功能是一个非常实用的功能,商家可以快速与会员取得联系。下面,我们将介绍如何在小程序中实现一键拨号功能。 1. 会员绑定手机号。会员在个人中心点击设置按钮,在手机号码处,点击一键输入手机号。也可以在提交订单页面&am…

udev自动创建设备节点的机制

流程框图如下 自动创建 1 内核检测到设备插入后,会发送一个uevent事件到内核中,并提供有关硬件设备的信息。 2 udevd守护程序收到uevent事件后,创建一个设备类,(向上提交目录信息),会在内核中…

8个免费的AI和LLM游乐场

推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 在本文中,我们的目标是通过引入八个用户友好的平台来弥合这一差距,这些平台使任何人都可以免费测试和比较开源AI模型。此外,它们还提供多种更新型号,确保您及时了解最新进…

数据库系统概念学习1

第一章 引言 数据库管理系统是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称为数据库 特定时刻存储在数据库中的信息的集合称为数据库的一个实例,而数据库的总体设计称为数据库模式 数据库结构的基础是数据模型,…