diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigFileUpdateScannerTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigFileUpdateScannerTest.java
index 26cb4e8..ea8af79 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigFileUpdateScannerTest.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigFileUpdateScannerTest.java
@@ -18,8 +18,8 @@
 import static com.google.common.truth.Truth8.assertThat;
 import static com.google.gerrit.testing.GerritJUnit.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
 import com.google.gerrit.acceptance.TestAccount;
@@ -129,7 +129,7 @@
         codeOwnerConfigFileUpdateScanner.update(
             BranchNameKey.create(project, "master"), "Update code owner configs", updater);
     assertThat(commit).isEmpty();
-    verifyZeroInteractions(updater);
+    verifyNoInteractions(updater);
   }
 
   @Test
@@ -155,7 +155,7 @@
         codeOwnerConfigFileUpdateScanner.update(
             BranchNameKey.create(project, "master"), "Update code owner configs", updater);
     assertThat(commit).isEmpty();
-    verifyZeroInteractions(updater);
+    verifyNoInteractions(updater);
   }
 
   @Test
diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchyTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchyTest.java
index 4df0138..df5ad05 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchyTest.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchyTest.java
@@ -20,8 +20,8 @@
 import static com.google.gerrit.testing.GerritJUnit.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
 import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
@@ -169,7 +169,7 @@
   @Test
   public void visitorNotInvokedIfNoCodeOwnerConfigExists() throws Exception {
     visit("master", "/foo/bar/baz.md");
-    verifyZeroInteractions(visitor);
+    verifyNoInteractions(visitor);
   }
 
   @Test
@@ -185,7 +185,7 @@
         .create();
 
     visit(branch, "/foo/bar/baz.md");
-    verifyZeroInteractions(visitor);
+    verifyNoInteractions(visitor);
   }
 
   @Test
@@ -562,7 +562,7 @@
         .visit(codeOwnerConfigOperations.codeOwnerConfig(rootCodeOwnerConfigKey).get());
     verifyNoMoreInteractions(visitor);
 
-    verifyZeroInteractions(parentCodeOwnersIgnoredCallback);
+    verifyNoInteractions(parentCodeOwnersIgnoredCallback);
   }
 
   @Test
@@ -583,23 +583,24 @@
   }
 
   @Test
-  public void visitorNotInvokedForCodeOwnerConfigInRefsMetaConfigIfItDoesntApply()
-      throws Exception {
-    codeOwnerConfigOperations
-        .newCodeOwnerConfig()
-        .project(project)
-        .branch(RefNames.REFS_CONFIG)
-        .folderPath("/")
-        .addCodeOwnerSet(
-            CodeOwnerSet.builder()
-                .addPathExpression(testPathExpressions.matchAllFilesInSubfolder("other"))
-                .addCodeOwnerEmail(admin.email())
-                .build())
-        .create();
+  public void visitorInvokedForCodeOwnerConfigInRefsMetaConfigIfItDoesntApply() throws Exception {
+    CodeOwnerConfig.Key metaCodeOwnerConfigKey =
+        codeOwnerConfigOperations
+            .newCodeOwnerConfig()
+            .project(project)
+            .branch(RefNames.REFS_CONFIG)
+            .folderPath("/")
+            .addCodeOwnerSet(
+                CodeOwnerSet.builder()
+                    .addPathExpression(testPathExpressions.matchAllFilesInSubfolder("other"))
+                    .addCodeOwnerEmail(admin.email())
+                    .build())
+            .create();
 
     when(visitor.visit(any(CodeOwnerConfig.class))).thenReturn(true);
     visit("master", "/foo/bar/baz.md");
-    verifyZeroInteractions(visitor);
+    verify(visitor).visit(codeOwnerConfigOperations.codeOwnerConfig(metaCodeOwnerConfigKey).get());
+    verifyNoMoreInteractions(visitor);
   }
 
   @Test
@@ -754,7 +755,7 @@
     // This test is making sure that trying to load 4. doesn't fail if refs/meta/config doesn't
     // exist.
     visit("master", "/foo/bar/baz.md");
-    verifyZeroInteractions(visitor);
+    verifyNoInteractions(visitor);
   }
 
   private void visit(String branchName, String path)
diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigScannerTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigScannerTest.java
index 9bc1bab..ee086a1 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigScannerTest.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigScannerTest.java
@@ -18,8 +18,8 @@
 import static com.google.gerrit.testing.GerritJUnit.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
 import com.google.gerrit.acceptance.config.GerritConfig;
@@ -122,8 +122,8 @@
   @Test
   public void visitorNotInvokedIfNoCodeOwnerConfigFilesExists() throws Exception {
     visit();
-    verifyZeroInteractions(visitor);
-    verifyZeroInteractions(invalidCodeOwnerConfigCallback);
+    verifyNoInteractions(visitor);
+    verifyNoInteractions(invalidCodeOwnerConfigCallback);
   }
 
   @Test
@@ -146,8 +146,8 @@
     }
 
     visit();
-    verifyZeroInteractions(visitor);
-    verifyZeroInteractions(invalidCodeOwnerConfigCallback);
+    verifyNoInteractions(visitor);
+    verifyNoInteractions(invalidCodeOwnerConfigCallback);
   }
 
   @Test
@@ -155,7 +155,7 @@
     createNonParseableCodeOwnerConfig("/OWNERS");
 
     visit();
-    verifyZeroInteractions(visitor);
+    verifyNoInteractions(visitor);
 
     // Verify that we received the expected callbacks for the invalid code onwer config.
     Mockito.verify(invalidCodeOwnerConfigCallback)
@@ -280,7 +280,7 @@
         .visit(codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfigKey).get());
     verifyNoMoreInteractions(visitor);
 
-    verifyZeroInteractions(invalidCodeOwnerConfigCallback);
+    verifyNoInteractions(invalidCodeOwnerConfigCallback);
   }
 
   @Test
@@ -303,7 +303,7 @@
         .visit(codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfigKey).get());
     verifyNoMoreInteractions(visitor);
 
-    verifyZeroInteractions(invalidCodeOwnerConfigCallback);
+    verifyNoInteractions(invalidCodeOwnerConfigCallback);
   }
 
   @Test
@@ -322,8 +322,8 @@
         false);
 
     // Verify that we did not receive any callback.
-    verifyZeroInteractions(visitor);
-    verifyZeroInteractions(invalidCodeOwnerConfigCallback);
+    verifyNoInteractions(visitor);
+    verifyNoInteractions(invalidCodeOwnerConfigCallback);
   }
 
   @Test
@@ -387,7 +387,7 @@
         .visit(codeOwnerConfigOperations.codeOwnerConfig(fooBarCodeOwnerConfigKey).get());
     verifyNoMoreInteractions(visitor);
 
-    verifyZeroInteractions(invalidCodeOwnerConfigCallback);
+    verifyNoInteractions(invalidCodeOwnerConfigCallback);
   }
 
   @Test
@@ -436,7 +436,7 @@
         .visit(codeOwnerConfigOperations.codeOwnerConfig(fooCodeOwnerConfigKey).get());
     verifyNoMoreInteractions(visitor);
 
-    verifyZeroInteractions(invalidCodeOwnerConfigCallback);
+    verifyNoInteractions(invalidCodeOwnerConfigCallback);
   }
 
   @Test
@@ -486,7 +486,7 @@
         .visit(codeOwnerConfigOperations.codeOwnerConfig(fooCodeOwnerConfigKey).get());
     verifyNoMoreInteractions(visitor);
 
-    verifyZeroInteractions(invalidCodeOwnerConfigCallback);
+    verifyNoInteractions(invalidCodeOwnerConfigCallback);
   }
 
   @Test
@@ -516,7 +516,7 @@
         .visit(codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfigKey).get());
     verifyNoMoreInteractions(visitor);
 
-    verifyZeroInteractions(invalidCodeOwnerConfigCallback);
+    verifyNoInteractions(invalidCodeOwnerConfigCallback);
   }
 
   private void visit() {
