junit5 入门系列教程-02-junit5 注解详解
目录
- 目录
- Junit5 注解
- @Test
- @ParameterizedTest
- @RepeatedTest
- @TestFactory
- @TestInstance
- @TestTemplate
- @DisplayName
- @BeforeEach
- @AfterEach
- @BeforeAll
- @AfterAll
- @Nested
- @Tag
- @Disabled
- @ExtendWith
- 元注释,注释
- 系列导航
Junit5 注解
所有支持的注解都在包 org.junit.jupiter.api
下;
使用@Test、@TestTemplate、@RepeatedTest、@BeforeAll、@AfterAll、@BeforeEach或@AfterEach注释的方法不能返回值。
@Test
表示方法是测试方法。与JUnit 4的@Test注释不同,这个注释不声明任何属性,因为JUnit Jupiter中的测试扩展基于它们自己的专用注释进行操作。
这些方法是继承的,除非它们被重写。
@ParameterizedTest
表示方法是参数化测试。这些方法是继承的,除非它们被重写。
@RepeatedTest
表示方法是重复测试的测试模板。这些方法是继承的,除非它们被重写。
@TestFactory
表示方法是动态测试的测试工厂。这些方法是继承的,除非它们被重写。
@TestInstance
用于为带注释的测试类配置测试实例生命周期。这些方法是继承的,除非它们被重写。
@TestTemplate
表示方法是为测试用例设计的模板,根据注册提供程序返回的调用上下文的数量进行多次调用。这些方法是继承的,除非它们被重写。
@DisplayName
声明测试类或测试方法的自定义显示名称。这样的注解不是继承来的。
@BeforeEach
表示在当前类中每个@Test、@RepeatedTest、@ParameterizedTest或@TestFactory方法之前执行注释的方法;类似于JUnit 4的@Before。
这些方法是继承的,除非它们被重写。
@AfterEach
表示在当前类中的每个@Test、@RepeatedTest、@ParameterizedTest或@TestFactory方法之后,都应该执行带注释的方法;类似于JUnit 4的@After。
这些方法是继承的,除非它们被重写。
@BeforeAll
表示应在当前类中的所有@Test、@RepeatedTest、@ParameterizedTest和@TestFactory方法之前执行带注释的方法;类似于JUnit 4的@BeforeClass。
这些方法是继承的(除非它们被隐藏或覆盖),并且必须是静态的(除非使用“每个类”测试实例生命周期)。
@AfterAll
表示在当前类中,所有@Test、@RepeatedTest、@ParameterizedTest和@TestFactory方法都应该执行注释的方法;类似于JUnit 4的@AfterClass。
这些方法是继承的(除非它们被隐藏或覆盖),并且必须是静态的(除非使用“每个类”测试实例生命周期)。
@Nested
表示带注释的类是一个嵌套的、非静态的测试类。@BeforeAll和@AfterAll方法不能直接在 @Nested 测试类中使用,除非使用“每个类”测试实例生命周期。
这样的注解不是继承来的。
@Tag
用于在类或方法级别声明过滤测试的标记;类似于TestNG中的测试组或JUnit 4中的类别。
此类注释在类级别继承,但在方法级别继承。
@Disabled
用于禁用测试类或测试方法;类似于JUnit 4的@Ignore。
这样的注解不是继承来的。
@ExtendWith
用于注册自定义扩展。这些注释是继承。
元注释,注释
JUnit Jupiter注解可以用作元注解。这意味着您可以定义自己的组合注释,它将自动继承其元注释的语义。
例如,您可以创建一个名为 @Fast
的自定义组合注释,
如下所示,而不是在整个代码库中复制和粘贴@Tag(“fast”)(请参阅标记和过滤)。然后可以使用@Fast作为@Tag(“fast”)的drop-in替代。
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;import org.junit.jupiter.api.Tag;@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Tag("fast")
public @interface Fast {}
系列导航
系列导航
junit5 入门系列教程-02-junit5 注解详解相关推荐
- Cubemx与HAL库系列教程|系统时钟配置详解及源码分析
STM32时钟系统简介 STM32种类繁多,时钟系统也不尽相同,但基本的还是大差不差,今日小飞哥就F1系列的MCU简单聊一聊STM32的时钟系统 1.时钟种类介绍: 先来看一看时钟树图,包含了整个系统 ...
- junit5 入门系列教程-17-junit5 动态测试(DynamicTest)
目录 目录 动态测试 生命周期 测试案例 系列导航 动态测试 在标注中描述的JUnit Jupiter中的标准@Test注释与JUnit 4中的@Test注释非常相似.两者都描述了实现测试用例的方法. ...
- 2.lombok系列2:lombok注解详解
转自:https://www.imooc.com/article/18157 开篇 看到第一篇<初识lombok>你可能意犹未尽,本文我们按照场景来介绍一下常用的注解. 未特别说明,均标注 ...
- [js高手之路] es6系列教程 - 迭代器与生成器详解
什么是迭代器? 迭代器是一种特殊对象,这种对象具有以下特点: 1,所有对象都有一个next方法 2,每次调用next方法,都会返回一个对象,该对象包含两个属性,一个是value, 表示下一个将要返回的 ...
- 手把手教你入门 Git 教程,图文实例详解
前言 Git简介 实用主义 深入探索 总结 参考资料 Git简介 Git 是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人 ...
- 全网最详系列教程-nacos配置中心详解-NameSpace、Group、DataID
特别喜欢李白的一句诗:俱怀逸兴壮思飞,欲上青天揽明月.其表达了对光明世界的执着追求.我亦身为三等码农,也向往着能够改变世界. 文章目录 1.命名空间.分组.DataID三者之间的关系 2.DataID ...
- Spring Boot系列教程四:配置文件详解properties
一.配置随机数,使用随机数 在application.properties文件添加配置信息 [html] view plaincopy #32位随机数 woniu.secret=${random.va ...
- java死信队列_Spring Boot系列教程之死信队列详解
前言 在说死信队列之前,我们先介绍下为什么需要用死信队列. 如果想直接了解死信对接,直接跳入下文的"死信队列"部分即可. ack机制和requeue-rejected属性 在项目s ...
- nightwatch系列教程05——Nightwatch配置详解
本章内容翻译自http://nightwatchjs.org/gettingstarted#settings-file. 测试运行接收一个配置文件作为参数,默认是当前目录下的 nightwatch.j ...
最新文章
- statpot:使用mongo+bootstrap+highcharts做统计报表
- 统计计量 | 协方差和相关系数的暧昧关系:共性与个性
- 什么?iPhone 8发布会当晚,杭州竟然有土豪摔手机砸场子!
- 每日一皮:前程序员离职后没人想接的代码...
- 初识python教学反思_[python第一课]初识python
- Linux下源码安装CodeBlocks
- KMPLAYER无法播放rmvb格式的解决办法
- 阿里NIPS 2017论文解读:如何降低TensorFlow训练的显存消耗?
- [React] 尚硅谷 -- 学习笔记(七)
- elementui上传图片加参数_Vue + Element UI使用富文本编辑器
- 【数学】十万个为什么(一) —— 为什么乘法会分为左乘和右乘,除法会分为左除和右除?
- c语言程序答设计答案张文祥,c语言程序设计答案张文祥
- Win10 台式机机箱前置耳机插孔没声音如何修复
- 指数函数 java_计算指数函数的算法
- 跨境电商独立站海外引流渠道:Quora运营技巧
- 入行3D建模需不需要美术绘画?不看吃亏的是你!
- HTML:如何设置网页标题上的图标
- C语言实现二叉排序树
- 实现一个Android锁屏App的难点总结 1
- android项目实战 博学谷 代码,《Android项目实战-博学谷》登录注册