Java: Test @VisibleForTesting method accessing @VisibleForTesting members

This commit is contained in:
Napalys Klicius
2025-08-06 14:37:29 +02:00
parent 7e2a1944f6
commit 1e2e6eccd7
3 changed files with 48 additions and 0 deletions

View File

@@ -1,3 +1,11 @@
| packageone/SourcePackage1.java:9:21:9:32 | Annotated.m1 | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:9:29:9:30 | m1 | element |
| packageone/SourcePackage1.java:10:21:10:32 | Annotated.m2 | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:11:26:11:27 | m2 | element |
| packageone/SourcePackage1.java:12:18:12:36 | fPublic(...) | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:26:23:26:29 | fPublic | element |
| packageone/SourcePackage1.java:13:18:13:39 | fProtected(...) | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:31:26:31:35 | fProtected | element |
| packageone/SourcePackage1.java:16:31:16:42 | Annotated.m1 | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:9:29:9:30 | m1 | element |
| packageone/SourcePackage1.java:17:31:17:42 | Annotated.m2 | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:11:26:11:27 | m2 | element |
| packageone/SourcePackage1.java:18:28:18:46 | fPublic(...) | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:26:23:26:29 | fPublic | element |
| packageone/SourcePackage1.java:19:28:19:49 | fProtected(...) | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:31:26:31:35 | fProtected | element |
| packageone/SourcePackage.java:9:21:9:32 | Annotated.m1 | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:9:29:9:30 | m1 | element |
| packageone/SourcePackage.java:10:21:10:32 | Annotated.m2 | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:11:26:11:27 | m2 | element |
| packageone/SourcePackage.java:16:18:16:36 | fPublic(...) | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:26:23:26:29 | fPublic | element |
@@ -6,6 +14,7 @@
| packageone/SourcePackage.java:26:31:26:42 | Annotated.m2 | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:11:26:11:27 | m2 | element |
| packageone/SourcePackage.java:29:28:29:46 | fPublic(...) | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:26:23:26:29 | fPublic | element |
| packageone/SourcePackage.java:30:28:30:49 | fProtected(...) | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:31:26:31:35 | fProtected | element |
| packagetwo/Annotated.java:89:20:89:34 | getSize(...) | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:79:13:79:19 | getSize | element |
| packagetwo/Source.java:8:20:8:30 | Annotated.m | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:7:19:7:19 | m | element |
| packagetwo/Source.java:14:17:14:29 | f(...) | Access of $@ annotated with VisibleForTesting found in production code. | packagetwo/Annotated.java:16:16:16:16 | f | element |
| packagetwo/Source.java:20:28:20:47 | new AnnotatedClass(...) | Access of $@ annotated with VisibleForTesting found in production code. | packageone/AnnotatedClass.java:4:14:4:27 | AnnotatedClass | element |

View File

@@ -0,0 +1,22 @@
package packageone;
import packagetwo.Annotated;
public class SourcePackage1 extends Annotated {
@VisibleForTesting
public void f() {
String s1 = Annotated.m1; // $ SPURIOUS: Alert
String s2 = Annotated.m2; // $ SPURIOUS: Alert
int i2 = Annotated.fPublic(); // $ SPURIOUS: Alert
int i3 = Annotated.fProtected(); // $ SPURIOUS: Alert
Runnable lambda = () -> {
String lambdaS1 = Annotated.m1; // $ SPURIOUS: Alert
String lambdaS2 = Annotated.m2; // $ SPURIOUS: Alert
int lambdaI2 = Annotated.fPublic(); // $ SPURIOUS: Alert
int lambdaI3 = Annotated.fProtected(); // $ SPURIOUS: Alert
};
}
}

View File

@@ -72,4 +72,21 @@ public class Annotated {
int methodProtected = fProtected();
}
}
@VisibleForTesting
static class InnerTestClass {
@VisibleForTesting
int getSize() {
return 42;
}
@VisibleForTesting
private String data;
}
private void useInnerClass() {
InnerTestClass inner = new InnerTestClass();
int size = inner.getSize(); // $ SPURIOUS: Alert
String value = inner.data;
}
}