问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

JUnit核心技术模块详解:Platform、Jupiter与Vintage

创作时间:
作者:
@小白创作中心

JUnit核心技术模块详解:Platform、Jupiter与Vintage

引用
CSDN
1.
https://m.blog.csdn.net/weixin_58869843/article/details/144781677

JUnit是一个广泛使用的Java测试框架,它由三个核心模块组成:JUnit Platform、JUnit Jupiter和JUnit Vintage。这些模块各自承担着不同的功能,共同构成了JUnit测试框架的核心架构。本文将详细介绍这三个模块的功能和作用。

综述

JUnit包含三个核心模块:JUnit Platform、JUnit Jupiter和JUnit Vintage。这些模块各自承担着不同的功能,共同构成了JUnit测试框架的核心架构。

Platform

JUnit Platform是JUnit测试框架的基础平台,主要负责提供测试框架的运行环境和相关API。具体来说,Platform模块具有以下功能:

  1. 运行基础:JUnit测试案例可以通过四种方式运行:命令行、IDE、Maven插件(或其他编译打包工具的插件)和程序。其中,其他方式都是建立在程序运行方式基础上的。

  2. Test Engine API:提供了开发测试框架所需的API,允许第三方实现自己的测试引擎,类似于JDBC API。

  3. 低版本兼容性支持:提供了与旧版本兼容的相关API。

JUnit Platform的结构图如下:

  • launcher:运行基础。
  • core:核心,在以程序方式运行测试案例时,大部分类来源于此包。
  • listener:监听器。
  • engine:提供了Test engine的API。
  • suite:条件类和注解。类似于condition包。
  • reporting:生成报告。
  • testkit:工具箱,提供额外的功能,例如统计。
  • commons:存放公共类。

Jupiter

JUnit Jupiter是JUnit 5的主要编程模型,用于编写测试案例和扩展。它提供了丰富的注解和扩展功能,使得测试案例的编写更加灵活和强大。Jupiter模块的结构图如下:

  • api:核心,提供了大量的注解。编写测试案例用的大部分类都来源于此包。
  • condition:条件相关的注解和API,类似ExectutionCondition。@Disabled等。
  • extension:提供大部分的扩展功能。
  • function:涉及到的函数接口。
  • io:io相关,只有一个注解@TempDir。
  • parallel:多线程相关。
  • params:核心,测试案例方法参数相关的所有内容都来源于此包。
  • converter:类型转换器。
  • provider:类型提供者,类似于Supplier函数接口。
  • aggregator
  • engine:实现平台提供的Test Engine相关API。
  • migrationsupport:低版本兼容性。

Vintage

JUnit Vintage模块主要用于支持JUnit 3和JUnit 4的测试案例在JUnit 5平台上运行。它要求类路径上至少存在JUnit 4.12或更高版本。这个模块的主要目的是为了实现向后兼容,使得旧版本的测试案例可以在新版本的JUnit平台上运行。

总结

JUnit的三个核心模块各自承担着不同的功能:Platform提供运行环境和API,Jupiter用于编写测试案例和扩展,Vintage实现向后兼容。理解这些模块的功能和作用,有助于开发者更好地使用JUnit进行测试驱动开发。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号