首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 5注释差异

Java 5注释差异
EN

Stack Overflow用户
提问于 2018-02-18 15:28:11
回答 1查看 7.9K关注 0票数 24

我看到有新的JUnit木星介绍根据JUnit 5用户指南

JUnit 5= JUnit平台+ JUnit木星+ JUnit年份

我对我在库中使用的同名注释感到困惑。这两个有什么显著的区别吗?

  • org.junit.Test
  • org.junit.jupiter.api.Test

上面链接页面中的说明将注释org.junit.jupiter.api.Test解释如下:

表示方法是测试方法。与JUnit 4的@Test注释不同,这个注释不声明任何属性,因为JUnit木星中的测试扩展是基于它们自己的专用注释运行的。除非重写这些方法,否则这些方法是继承的。

据我所知,主要的区别是新的注释属性被专用的注释和方法(例如)所取代。( assertTimeout(...))与旧的@Test(timeout = 1000)不同。

但是,文档中提到了来自JUnit 4的旧注释JUnit,但没有清楚地解释版本JUnit 5中相同注释的用途,这让我感到惊讶的是,它没有标记为@Deprecated --这意味着在JUnit 5中仍然有使用该注释的目的,对吗?

我的问题是,org.junit.Test在JUnit 5中的目的是什么,为什么不被反对,我的选择应该是基于上述两个注释之间的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-18 18:21:26

org.junit.Test而不是JUnit5中的,该类是由您对JUnit Vintage的依赖提供的。

JUnit Vintage包括JUnit Vintage测试引擎和类(如org.junit.Test ),这允许您在JUnit5测试的同时运行JUnit4测试。这是一种反向可压缩性度量。

如果您只想使用JUnit5构造(并将JUnit4排除在项目之外),那么只需放弃对JUnit Vintage的依赖,而只关注org.junit.jupiter.api.Test

如果需要并行运行JUnit4和JUnit5测试(可能在偏头痛/中断期间),则保留对JUnit Vintage的依赖,但使用org.junit.jupiter.api.Test编写所有新的测试用例。

更新:对此作出回应.

我仍然不明白为什么不反对org.junit.Test

它根本不存在于JUnit木星中(因此废弃是没有意义的),在JUnit葡萄酒中也不推荐它,因为它是JUnit葡萄酒的核心元素。但是,我想我可以看到您来自哪里;您升级到了JUnit5,令人困惑的是,没有@Deprecated的类路径上仍然可以使用org.junit.Test,因此没有明确的指示它的“不使用”状态。也许您应该考虑在运行JUnit4时是否需要/需要任何支持的JUnit5结构。如果您不需要这样做,那么就不要包含对JUnit Vintage的依赖,就像org.junit.Test从来不存在一样。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48853312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档