我看到根据JUnit 5 User Guide介绍了新的 JUnit Jupiter 。
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
我对在整个库中使用的同名注释感到困惑。这两者之间有什么显着差异吗?
org.junit.Test
org.junit.jupiter.api.Test
上面链接页面的描述解释了注释org.junit.jupiter.api.Test
如下:
表示方法是测试方法。与 JUnit 4 的 @Test 注解不同,此注解不声明任何属性,因为 JUnit Jupiter 中的测试扩展基于它们自己的专用注解进行操作。这些方法是继承的,除非它们被覆盖。
据我了解,主要区别在于新的注释属性被替换为专用的注释和方法(例如assertTimeout(...)
),与旧的@Test(timeout = 1000)
.
该文档谈到org.junit.Test
了 JUnit 4 中的旧注释,但是,并没有清楚地解释版本 JUnit 5 中相同注释的用途,令我惊讶的是,它没有标记为@Deprecated
- 这意味着仍然有使用它的目的JUnit 5 中的注释,对吗?
我的问题是 JUnit 5 的目的是什么org.junit.Test
,为什么它不被弃用,以及我在上面提到的两个注释之间的选择应该基于什么。