【发布时间】:2018-07-28 22:18:19
【问题描述】:
我看到有根据JUnit 5 User Guide介绍了新的JUnit Jupiter。
JUnit 5 = JUnit 平台 + JUnit Jupiter + JUnit Vintage
我对在整个库中使用的同名注释感到困惑。这两者有什么明显的区别吗?
org.junit.Testorg.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 的用途是什么,为什么它不被弃用,以及我在上述两个注释之间的选择应该基于什么。
【问题讨论】:
-
"JUnit 5" 不包含
org.junit.Test...在此处浏览 API:junit.org/junit5/docs/snapshot/api
标签: java unit-testing junit junit5 junit-jupiter