码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 的扩展是通过 @RunWith 和 TestRule 来实现的,有一些限制。
      • 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,以便利用新功能和改进。

    在这里插入图片描述

  • 相关阅读:
    手把手教你搭建android模块化项目框架(十二)——实现自定义view的一些小技巧~
    一行Python代码即可实现数据可视化大屏
    vue3中表格单选
    Swift 和 Python 两种语言中带关联信息错误(异常)类型的比较
    【计算机网络】计算机网络概述
    基于深度学习的图像识别技术研究
    分布式技术之dubbo二
    算法探索-切面条(CSDN算法技能树第一题)
    Jenkins远程构建项目超时的问题
    免费和开源的机器翻译软件LibreTranslate
  • 原文地址:https://blog.csdn.net/yangshangwei/article/details/132806257
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号