diff --git a/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/ConfigurationTest.java b/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/ConfigurationTest.java
index c17839d..4f8d1a1 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/ConfigurationTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/ratelimiter/ConfigurationTest.java
@@ -15,6 +15,7 @@
 package com.googlesource.gerrit.plugins.ratelimiter;
 
 import static com.google.common.truth.Truth.assertThat;
+import static com.google.gerrit.testing.GerritJUnit.assertThrows;
 import static org.mockito.Mockito.when;
 
 import com.google.gerrit.common.data.GroupDescription;
@@ -26,9 +27,7 @@
 import org.eclipse.jgit.errors.ConfigInvalidException;
 import org.eclipse.jgit.lib.Config;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.ExpectedException;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
@@ -37,8 +36,6 @@
 public class ConfigurationTest {
   private static final String PLUGIN_NAME = "rate-limiter";
 
-  @Rule public ExpectedException exception = ExpectedException.none();
-
   @Mock private PluginConfigFactory pluginConfigFactoryMock;
   @Mock private GroupResolver groupsCollectionMock;
   @Mock private GroupDescription.Basic administratorsGroupDescMock;
@@ -92,10 +89,10 @@
     globalPluginConfig.setInt(
         groupTagName, someGroupDescMock.getName(), "invalidTypePerHour", validRate);
 
-    exception.expect(ProvisionException.class);
-    exception.expectMessage(
-        "Invalid configuration, unsupported rate limit type: invalidTypePerHour");
-    getConfiguration();
+    ProvisionException thrown = assertThrows(ProvisionException.class, () -> getConfiguration());
+    assertThat(thrown)
+        .hasMessageThat()
+        .contains("Invalid configuration, unsupported rate limit type: invalidTypePerHour");
   }
 
   @Test
@@ -108,12 +105,12 @@
         RateLimitType.UPLOAD_PACK_PER_HOUR.toString(),
         invalidType);
 
-    exception.expect(ProvisionException.class);
-    exception.expectMessage(
-        "Invalid configuration, 'rate limit value '"
-            + invalidType
-            + "' for 'group.someGroup.uploadpackperhour' is not a valid number");
-    getConfiguration();
+    String expectedMessage =
+        String.format(
+            "Invalid configuration, 'rate limit value '%s' for 'group.someGroup.uploadpackperhour' is not a valid number",
+            invalidType);
+    ProvisionException thrown = assertThrows(ProvisionException.class, () -> getConfiguration());
+    assertThat(thrown).hasMessageThat().contains(expectedMessage);
   }
 
   @Test
