Sam*_*mar 4 java encapsulation annotations jetbrains-ide guava
根据我的理解,这些注释用于带有访问修饰符的方法,允许从另一个类调用方法以进行单元测试
@VisibleForTesting - com.google.common.annotations.VisibleForTesting
@TestOnly - org.jetbrains.annotations.TestOnly
第一个很大的区别显然是它是由不同的项目提供的。
@VisibleForTesting是Google Guava 库的一部分,也是JetBrains 注释@TestOnly的一部分,这些注释与 JetBrains、IntelliJ IDEA 的制造商等相关。
比较两者的 JavaDoc 表明它们的目标基本相同:@TestOnly和@VisibleForTesting。
请注意,这两个注释的文档都包含一条注释,有效地警告您注释本身不会阻止生产代码调用带注释的方法。JetBrains 建议使用支持该注释的静态检查工具(其中之一可能内置于 IntelliJ IDEA 中),Guava 建议使用带有明确禁止 API 列表的外部检查工具。
tl;dr它们实际上表明了同一件事。决定使用哪一种主要取决于您使用哪些工具对其进行操作以及它们支持哪一种。已经使用其中一个包中的其他注释或类是选择其中一个包的另一个原因。
| 归档时间: |
|
| 查看次数: |
3661 次 |
| 最近记录: |