记 SpringBoot 1.x.x 与 SpringBoot 2.x.x 单元测试区别 以及 @RunWith 注解思考

前言:

不久前写了一个SpringBoot整合的Demo,由于教程上的Demo是用的 SpringBoot 1.5.14 版本,而我使用的是SpringBoot 2.4.2 版本,在做单元测试的时候,发现两个版本的测试类写法有一定差别,且不使用 @RunWith 注解依旧能进行单元测试。对上述问题我在这里做个简单分析


新旧版本测试类对照

在这里插入图片描述


差别分析

由上面的对照图可以看出,注解 @Test 的来源路径不同, 1.5.14 版本的 @Test 来源于 org.junit, 而 2.4.2 版本的 @Test 来源于 org.junit.jupiter.api

分析:
  • 1.5.14版本默认使用的 Junit4
    在这里插入图片描述

. Junit4 测试方法必须使用 public void 修饰,而且不能带有任何参数。在这里插入图片描述

  • 2.4.2版本默认使用的 Junit5
    在这里插入图片描述

JUnit 5 与以前版本的 JUnit 不同,拆分成由三个不同子项目的几个不同模块组成。
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

  • JUnit Platform: 用于JVM上启动测试框架的基础服务,提供命令行,IDE和构建工具等方式执行测试的支持。
  • JUnit Jupiter:包含 JUnit 5 新的编程模型和扩展模型,主要就是用于编写测试代码和扩展代码。
  • JUnit Vintage:用于在JUnit 5 中兼容运行 JUnit3.x 和 JUnit4.x 的测试用例。

关于不加 @RunWith 也能运行的解释

标准测试类里是要有@RunWith的,作用是告诉java你这个类通过用什么运行环境运行,例如启动和创建spring的应用上下文。否则你需要为此在启动时写一堆的环境配置代码。你在IDEA里去掉@RunWth仍然能跑是因为在IDEA里识别为一个JUNIT的运行环境,相当于就是一个自识别的RUNWITH环境配置。但在其他IDE里并没有。所以,为了你的代码能在其他IDE里边正常跑,建议还是加@RunWith

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0rta1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值