Java 单元测试中@TestOnly和@VisibleForTesting的区别是什么
根据我的理解,这些注释用于带有访问修饰符的方法,该修饰符允许从另一个类调用方法进行单元测试 @VisibleForTesting-com.google.common.annotations.VisibleForTestingJava 单元测试中@TestOnly和@VisibleForTesting的区别是什么,java,annotations,guava,encapsulation,jetbrains-ide,Java,Annotations,Guava,Encapsulation,Jetbrains Ide,根据我的理解,这些注释用于带有访问修饰符的方法,该修饰符允许从另一个类调用方法进行单元测试 @VisibleForTesting-com.google.common.annotations.VisibleForTesting @TestOnly-org.jetbrains.annotations.TestOnly第一个明显的区别是它由不同的项目提供 @VisibleForTesting是IntelliJ IDEA的制造商JetBrains的一部分,而@TestOnly则是其中的一部分 比较两者的
@TestOnly-org.jetbrains.annotations.TestOnly第一个明显的区别是它由不同的项目提供
@VisibleForTesting
是IntelliJ IDEA的制造商JetBrains的一部分,而@TestOnly
则是其中的一部分
比较两者的JavaDoc可以看出,它们的目标基本相同:和
请注意,两个注释的文档都包含一个注释,有效地警告您注释本身不会阻止生产代码调用带注释的方法。JetBrains建议使用支持该注释的静态检查工具(其中一个可能内置于IntelliJ IDEA中),Guava建议使用带有明确禁止API列表的外部检查工具
tl;dr它们有效地表示相同的事情。使用哪种工具的决定主要取决于您使用哪种工具对其进行操作以及它们支持哪种工具。已经在使用其中一个包中的其他注释或类是选择其中一个的另一个原因。第一个明显的区别是,它是由不同的项目提供的
@VisibleForTesting
是IntelliJ IDEA的制造商JetBrains的一部分,而@TestOnly
则是其中的一部分
比较两者的JavaDoc可以看出,它们的目标基本相同:和
请注意,两个注释的文档都包含一个注释,有效地警告您注释本身不会阻止生产代码调用带注释的方法。JetBrains建议使用支持该注释的静态检查工具(其中一个可能内置于IntelliJ IDEA中),Guava建议使用带有明确禁止API列表的外部检查工具
tl;dr它们有效地表示相同的事情。使用哪种工具的决定主要取决于您使用哪种工具对其进行操作以及它们支持哪种工具。已经在使用其中一个包中的其他注释或类是选择其中一个的另一个原因