根据JUnit 5用户指南介绍,新的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)
。文档讲述了JUnit 4中的旧注解
org.junit.Test
,但并没有清楚地解释版本JUnit 5中相同注解的目的,令我惊讶的是,它没有标记为@Deprecated
,这意味着在JUnit 5中仍然可以使用此注解,我是对的吗?我的问题是:JUnit 5中
org.junit.Test
的目的是什么,为什么它没有被弃用,我应该基于上述两个注解做出什么选择。
org.junit.Test
... 在此浏览 API:https://junit.org/junit5/docs/snapshot/api - Sormuras