Annotation Type VisibleForTesting


  • @Retention(SOURCE)
    public @interface VisibleForTesting
    Denotes that the class, method or field has its visibility relaxed, so that it is more widely visible than otherwise necessary to make code testable.

    You can optionally specify what the visibility should have been if not for testing; this allows tools to catch unintended access from within production code.

    Example:

    
      @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
      public String printDiagnostics() { ... }
     
    If not specified, the intended visibility is assumed to be private.
    • Field Summary

      Fields 
      Modifier and Type Fields Description
      static int NONE
      The annotated element should never be called from production code, only from tests.
      static int PACKAGE_PRIVATE
      The annotated element would have "package private" visibility
      static int PRIVATE
      The annotated element would have "private" visibility
      static int PROTECTED
      The annotated element would have "protected" visibility
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      int otherwise
      The visibility the annotated element would have if it did not need to be made visible for testing.
    • Field Detail

      • PRIVATE

        static final int PRIVATE
        The annotated element would have "private" visibility
      • PACKAGE_PRIVATE

        static final int PACKAGE_PRIVATE
        The annotated element would have "package private" visibility
      • PROTECTED

        static final int PROTECTED
        The annotated element would have "protected" visibility
      • NONE

        static final int NONE
        The annotated element should never be called from production code, only from tests.

        This is equivalent to @RestrictTo.Scope.TESTS.

    • Element Detail

      • otherwise

        int otherwise
        The visibility the annotated element would have if it did not need to be made visible for testing.
        Default:
        2