据我所知,这些注解用于带有访问修饰符的方法,该修饰符允许从另一个类调用方法进行单元测试@visiblefortesting-com.google.common.annotations.visiblefortesting@testonly-org.jetbrains.annotations.testonly
m2xkgtsf1#
第一个明显的区别是它是由不同的项目提供的。 @VisibleForTesting 是谷歌guava图书馆和 @TestOnly 是jetbrains注解的一部分,与intellij idea的创造者jetbrains有关。比较两者的javadoc可以发现它们的目标基本相同: @TestOnly 以及 @VisibleForTesting .请注意,这两个注解的文档都包含一个注解,有效地警告您注解本身不会阻止生产代码调用带注解的方法。jetbrains建议使用支持该注解的静态检查工具(其中一个可能内置在intellij idea中),guava建议使用带有明确禁止api列表的外部检查工具。热释光;博士,他们实际上表明了同样的事情。使用哪种工具的决定主要取决于您使用哪种工具对它们进行操作以及它们支持哪种工具。已经在使用其中一个包中的其他注解或类是选择其中一个的另一个原因。
@VisibleForTesting
@TestOnly
1条答案
按热度按时间m2xkgtsf1#
第一个明显的区别是它是由不同的项目提供的。
@VisibleForTesting
是谷歌guava图书馆和@TestOnly
是jetbrains注解的一部分,与intellij idea的创造者jetbrains有关。比较两者的javadoc可以发现它们的目标基本相同:
@TestOnly
以及@VisibleForTesting
.请注意,这两个注解的文档都包含一个注解,有效地警告您注解本身不会阻止生产代码调用带注解的方法。jetbrains建议使用支持该注解的静态检查工具(其中一个可能内置在intellij idea中),guava建议使用带有明确禁止api列表的外部检查工具。
热释光;博士,他们实际上表明了同样的事情。使用哪种工具的决定主要取决于您使用哪种工具对它们进行操作以及它们支持哪种工具。已经在使用其中一个包中的其他注解或类是选择其中一个的另一个原因。