From 6ddbaa414b46cc9f8e72dd4b3decbda56c96e9e9 Mon Sep 17 00:00:00 2001 From: ghm Date: Wed, 7 Dec 2022 06:37:55 -0800 Subject: [PATCH] Only match _static_ methods named when/verify. PiperOrigin-RevId: 493588908 --- .../bugpatterns/MockNotUsedInProduction.java | 3 +-- .../MockNotUsedInProductionTest.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/MockNotUsedInProduction.java b/core/src/main/java/com/google/errorprone/bugpatterns/MockNotUsedInProduction.java index e7a32649353..fab61e95b5c 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/MockNotUsedInProduction.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/MockNotUsedInProduction.java @@ -19,7 +19,6 @@ import static com.google.common.collect.Streams.stream; import static com.google.errorprone.BugPattern.SeverityLevel.WARNING; import static com.google.errorprone.matchers.Description.NO_MATCH; -import static com.google.errorprone.matchers.Matchers.anyMethod; import static com.google.errorprone.matchers.Matchers.anyOf; import static com.google.errorprone.matchers.Matchers.hasAnnotation; import static com.google.errorprone.matchers.Matchers.staticMethod; @@ -195,5 +194,5 @@ private boolean annotatedAtMostMock(Symbol symbol) { hasAnnotation("org.mockito.InjectMocks"); private static final Matcher WHEN_OR_VERIFY = - anyMethod().anyClass().namedAnyOf("when", "verify"); + staticMethod().anyClass().namedAnyOf("when", "verify"); } diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/MockNotUsedInProductionTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/MockNotUsedInProductionTest.java index 97214fe4b91..17acafacc6b 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/MockNotUsedInProductionTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/MockNotUsedInProductionTest.java @@ -66,6 +66,25 @@ public void spyNeverUsed() { .doTest(); } + @Test + public void nonStaticVerify_countsAsUse() { + helper + .addSourceLines( + "Test.java", + "import static org.mockito.Mockito.spy;", + "class Test {", + " public Object test() {", + " Test test = spy(new Test());", + " verify(test).test();", + " return null;", + " }", + " Test verify (Test t) {", + " return t;", + " }", + "}") + .doTest(); + } + @Test public void passedToProduction() { helper