🔍
📢

JUnit 5.2.0 - Java 单元测试框架

JUnit 5.2.0 发布,JUnit 5.2.0 = Platform 1.2.0 + Jupiter 5.2.0 + Vintage 5.2.0,此次更新包括构建工具的增强、参数化测试的改进等。

更新信息如下:

  • 构建工具功能增强以支持新的模块化体系结构,并有助于现有测试套件的采用/迁移到 JUnit 5。

  • 新的 BOM POM 简化依赖关系管理。

  • 由于内存泄漏问题以及在 Java 9中执行测试的问题,JUnit 5跳过了对 Surefire 2.20的支持,直接支持 Surefire 2.21.0 ,这同时允许 JUnit 5测试在 Java 9和10环境中执行。

  • 提供失效保护:failsafe-plugin

  • @MethodSource 现在可以位于外部类中。

  • @CsvSource 通过新的 ArgumentsAccessor 在JUnit 5.2中得到了很多改进。

详情见发布公告

JUnit 是一个 Java 语言的单元测试框架。它有自己的 JUnit 扩展生态圈,多数 Java 开发环境都已经集成了JUnit 作为单元测试的工具。JUnit 测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。另外 JUnit 是在极限编程和重构中被极力推荐使用的工具。

JUnit 5 由三个不同的模块组成:

  • JUnit 平台,其主要作用是在 JVM 上启动测试框架。它定义了一个抽象的 TestEngine API 来定义运行在平台上的测试框架,同时还支持通过命令行、Gradle 和 Maven 来运行平台。

  • JUnit Jupiter,包含了 JUnit 5 最新的编程模型和扩展机制。

  • JUnit Vintage,允许在平台上运行 JUnit 3 和 JUnit 4 的测试用例。

JUnit 5 对 Java 运行环境的最低要求是 Java 8,同时也兼容测试旧版本 JDK 编译出来的代码。

 

另 - JUnit 5.1.0 也已发布,主要更新内容包括:

  • Java 9 模块化 Discovering 测试

  • 改进 Kotlin 支持

  • 通过 @RegisterExtension 扩展编程方式配置

  • 标记表达式语言,以过滤要执行的测试

  • 改进参数化测试编写

  • 改进 ExtensionContext API

  • 支持在 IDE 中重新运行单个动态测试、参数化测试和测试模板调用