Junit5 架构、新特性及基本使用:常用注解与套件执行(1)

发表于:2021-11-02 10:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:知乎

  一、Junit 简介与架构
  什么是 Junit5,在 Junit5 的官方介绍文档中这写到:
  Junit5 由JUnit Platform + JUnit Jupiter + JUnit Vintage3部分构成,借用 IBM Developer 的一张图来说明 JUnit 5 的架构:
  JUnit Platform:
  其主要作用是在 JVM 上启动测试框架。它定义了一个抽象的 TestEngine API 来定义运行在平台上的测试框架;也就是说其他的自动化测试引擎或开发人员??定制的引擎都可以接入 Junit 实现对接和执行。同时还支持通过命令行、Gradle 和 Maven 来运行平台(这对于我们做自动化测试至关重要)。
  JUnit Jupiter:
  这是 Junit5 的核心,可以看作是承载 Junit4 原有功能的演进,包含了 JUnit 5 最新的编程模型和扩展机制;很多丰富的新特性使 JUnit ?动化测试更加方便、功能更加丰富和强大。也是测试需要重点学习的地方;Jupiter 本身也是?一个基于 Junit Platform 的引擎实现,对 JUnit 5 而言,JUnit Jupiter API 只是另一个 API!。
  JUnit Vintage:
  Junit 发展了10数年,Junit 3 和 Junit 4 都积累了大量的?用户,作为新一代框 架,这个模块是对 JUnit3,JUnit4 版本兼容的测试引擎,使旧版本 junit 的?动化测试脚本也可以顺畅运行在 Junit5 下,它也可以看作是基于 Junit Platform 实现的引擎范例。
  JUnit 5 对 Java 运行环境的最低要求是 Java 8。
  二、Junit5 的新特性
  ·嵌套单元测试
  · Lambda支持
  · 参数化测试
  · 重复测试
  · 动态测试
  JUnit 4 与 JUnit 5 中的注解比较:
  三、JUnit 5 常用注解
  3.1 Junit5 常用注解
  3.2 实操演示
  1)创建 maven 工程 XUnit,pom.xml中添加Junit5的依赖。
      <dependency>
          <groupId>org.junit.platform</groupId>
          <artifactId>junit-platform-launcher</artifactId>
          <version>1.5.2</version>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.junit.jupiter</groupId>
          <artifactId>junit-jupiter-engine</artifactId>
          <version>5.5.2</version>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
          <version>5.5.2</version>
          <scope>test</scope>
      </dependency>
  2)其余的 XUnit 框架通用的设计运行规则可参考:《如何利用 xUnit 框架对测试用例进行维护》。
  3)添加用例@Test,再在用例执行前后添加@BeforeEach、@AfterEach:
  运行结果:
  4)在测试类执行前后添加@BeforeAll和@AfterAll:
  测试结果:
  5)在测试用例test1上加入注解@Disabled,使test1失效。
  测试结果:
  从测试结果中我们可以看到 test1 用例被 ignore,没有被执行。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号