繁体   English   中英

Assert 中的方法和 junit 5 中的 Assertions 包有什么区别?

[英]What is the difference between the methods in Assert and the Assertions packages in junit 5?

每当我创建一个断言时,Eclipse 都会建议我从这两个包之一中导入它。

例如,当我尝试将 arrays 与assertArrayEquals()进行比较时,Eclipse 建议从任一

org.junit.Assert.assertArrayEquals
 or 
org.junit.jupiter.api.Assertions.assertArrayEquals

两种方法都可以完美运行。 这两者之间有什么根本区别吗?

这比什么都更具有历史意义。 首先是org.junit package,它混合了 API 和用于运行测试和测试用例的实现类。

对于 JUnit 5 api,这些类被拆分到不同的包中,因此当您拥有注释时,它们可以单独包含在您的运行时,并且测试执行引擎位于不同的 ZEFE90A8E604A7C840E88D03A6D 中

为方便起见,这些类保持相同的名称,因此您只需更改 class 路径中包含的 package。

因此,您可以使用其中任何一种,但请尝试始终使用一个 package。

另一个观察结果是,将包分开的原因是你可以拥有一个由一些旧的 JUnit 库和一些新库组成的项目。 因此,您无需在一个 go 中重构所有内容即可迁移。

https://junit.org/junit5/docs/current/user-guide/#migrating-from-junit4

PS如果您想忽略较旧的 JUnit 包,您可以将它们添加到 Eclipse 首选项中的step filters中,然后 Eclipse 不会建议 ZEFE90A8E604A7C840E88D03A67F67。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM