This is an automated email from the ASF dual-hosted git repository.

domgarguilo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/main by this push:
     new b264246  Convert all tests to assertThrows (#2435)
b264246 is described below

commit b264246a9a17279e096570b9f377aa06251c9460
Author: Dom G <dominic.gargu...@gmail.com>
AuthorDate: Thu Jan 27 15:45:08 2022 -0500

    Convert all tests to assertThrows (#2435)
    
    * Convert all tests to assertThrows
---
 .../accumulo/core/cli/PasswordConverterTest.java   |  8 +-
 .../core/client/BatchWriterConfigTest.java         | 21 ++---
 .../accumulo/core/client/IteratorSettingTest.java  |  6 +-
 .../core/client/ZooKeeperInstanceTest.java         | 21 ++---
 .../client/admin/DelegationTokenConfigTest.java    | 16 ++--
 .../core/client/lexicoder/ListLexicoderTest.java   |  6 +-
 .../client/lexicoder/SequenceLexicoderTest.java    |  6 +-
 .../core/client/rfile/RFileClientTest.java         | 38 ++++-----
 .../tokens/CredentialProviderTokenTest.java        | 13 ++--
 .../core/clientImpl/ScannerOptionsTest.java        |  5 +-
 .../core/clientImpl/ThriftTransportKeyTest.java    |  7 +-
 .../core/conf/AccumuloConfigurationTest.java       | 32 ++++----
 .../accumulo/core/conf/ConfigCheckUtilTest.java    | 14 ++--
 .../core/conf/ConfigurationTypeHelperTest.java     | 49 +++++++-----
 .../core/conf/HadoopCredentialProviderTest.java    | 11 ++-
 .../accumulo/core/data/ArrayByteSequenceTest.java  | 38 ++++-----
 .../apache/accumulo/core/data/ConditionTest.java   |  9 ++-
 .../org/apache/accumulo/core/data/KeyTest.java     |  5 +-
 .../apache/accumulo/core/data/LoadPlanTest.java    | 26 ++++---
 .../apache/accumulo/core/data/MutationTest.java    | 14 ++--
 .../org/apache/accumulo/core/data/ValueTest.java   | 25 +++---
 .../apache/accumulo/core/file/rfile/RFileTest.java |  8 +-
 .../accumulo/core/file/rfile/RelativeKeyTest.java  |  8 +-
 .../core/iterators/SortedMapIteratorTest.java      |  8 +-
 .../iterators/user/RowEncodingIteratorTest.java    |  5 +-
 .../core/iterators/user/WholeRowIteratorTest.java  |  5 +-
 .../core/metadata/schema/LinkingIteratorTest.java  | 22 +++---
 .../core/metadata/schema/MetadataTimeTest.java     | 25 +++---
 .../core/metadata/schema/TabletMetadataTest.java   |  6 +-
 .../core/replication/ReplicationSchemaTest.java    | 29 +++----
 .../accumulo/core/security/AuthorizationsTest.java |  6 +-
 .../core/spi/fs/SpaceAwareVolumeChooserTest.java   | 10 ++-
 .../apache/accumulo/core/util/FastFormatTest.java  | 16 ++--
 .../org/apache/accumulo/core/util/OpTimerTest.java | 13 ++--
 .../core/util/UnsynchronizedBufferTest.java        |  4 +-
 .../core/util/format/DefaultFormatterTest.java     |  9 ++-
 .../core/util/format/HexFormatterTest.java         |  9 ++-
 .../fate/zookeeper/ZooReaderWriterTest.java        |  5 +-
 .../accumulo/fate/zookeeper/ZooSessionTest.java    | 12 ++-
 .../apache/accumulo/server/ServerContextTest.java  |  5 +-
 .../manager/state/TabletLocationStateTest.java     | 14 ++--
 .../problems/ProblemReportingIteratorTest.java     |  5 +-
 .../TCredentialsUpdatingInvocationHandlerTest.java | 43 +++++-----
 .../security/delegation/AuthenticationKeyTest.java |  5 +-
 .../AuthenticationTokenSecretManagerTest.java      | 18 +++--
 .../ZooAuthenticationKeyDistributorTest.java       | 85 ++++++++++----------
 .../accumulo/server/tablets/TabletTimeTest.java    |  9 ++-
 .../accumulo/server/util/TServerUtilsTest.java     |  5 +-
 .../apache/accumulo/gc/GarbageCollectionTest.java  | 27 ++++---
 .../ManagerReplicationCoordinatorTest.java         | 30 +++----
 .../accumulo/manager/upgrade/AccumuloTest.java     | 11 ++-
 .../manager/upgrade/Upgrader9to10Test.java         | 11 ++-
 .../apache/accumulo/tserver/InMemoryMapTest.java   |  8 +-
 .../tserver/TabletServerSyncCheckTest.java         | 12 ++-
 .../accumulo/tserver/log/LogFileKeyTest.java       |  7 +-
 .../replication/ReplicationProcessorTest.java      |  5 +-
 .../tablet/TabletMutationPrepAttemptTest.java      | 17 ++--
 .../org/apache/accumulo/shell/ShellUtilTest.java   |  7 +-
 .../apache/accumulo/test/ConditionalWriterIT.java  |  5 +-
 .../accumulo/test/MetaConstraintRetryIT.java       | 19 +++--
 .../java/org/apache/accumulo/test/MetaSplitIT.java |  8 +-
 .../accumulo/test/NewTableConfigurationIT.java     | 91 ++++++++++++----------
 .../org/apache/accumulo/test/ShellServerIT.java    |  9 ++-
 .../accumulo/test/ZooKeeperPropertiesIT.java       |  9 ++-
 .../apache/accumulo/test/functional/BulkNewIT.java |  5 +-
 .../accumulo/test/functional/CloneTestIT.java      | 15 ++--
 .../accumulo/test/functional/KerberosIT.java       | 48 ++++++------
 .../accumulo/test/functional/ReadWriteIT.java      |  5 +-
 .../test/mapreduce/AccumuloInputFormatIT.java      |  5 +-
 69 files changed, 629 insertions(+), 484 deletions(-)

diff --git 
a/core/src/test/java/org/apache/accumulo/core/cli/PasswordConverterTest.java 
b/core/src/test/java/org/apache/accumulo/core/cli/PasswordConverterTest.java
index 11e0d60..5e483a6 100644
--- a/core/src/test/java/org/apache/accumulo/core/cli/PasswordConverterTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/cli/PasswordConverterTest.java
@@ -20,9 +20,9 @@ package org.apache.accumulo.core.cli;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStreamWriter;
@@ -103,10 +103,10 @@ public class PasswordConverterTest {
     assertEquals(expected, password.password);
   }
 
-  @Test(expected = ParameterException.class)
-  public void testNoFile() throws FileNotFoundException {
+  @Test
+  public void testNoFile() {
     argv[1] = "file:doesnotexist";
-    new JCommander(password).parse(argv);
+    assertThrows(ParameterException.class, () -> new 
JCommander(password).parse(argv));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/client/BatchWriterConfigTest.java 
b/core/src/test/java/org/apache/accumulo/core/client/BatchWriterConfigTest.java
index 9629624..7a43795 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/client/BatchWriterConfigTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/client/BatchWriterConfigTest.java
@@ -21,6 +21,7 @@ package org.apache.accumulo.core.client;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -79,16 +80,16 @@ public class BatchWriterConfigTest {
     assertEquals(0, bwConfig.getMaxMemory());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testNegativeMaxMemory() {
     BatchWriterConfig bwConfig = new BatchWriterConfig();
-    bwConfig.setMaxMemory(-1);
+    assertThrows(IllegalArgumentException.class, () -> 
bwConfig.setMaxMemory(-1));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testNegativeMaxLatency() {
     BatchWriterConfig bwConfig = new BatchWriterConfig();
-    bwConfig.setMaxLatency(-1, TimeUnit.DAYS);
+    assertThrows(IllegalArgumentException.class, () -> 
bwConfig.setMaxLatency(-1, TimeUnit.DAYS));
   }
 
   @Test
@@ -112,22 +113,22 @@ public class BatchWriterConfigTest {
 
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testNegativeTimeout() {
     BatchWriterConfig bwConfig = new BatchWriterConfig();
-    bwConfig.setTimeout(-1, TimeUnit.DAYS);
+    assertThrows(IllegalArgumentException.class, () -> bwConfig.setTimeout(-1, 
TimeUnit.DAYS));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testZeroMaxWriteThreads() {
     BatchWriterConfig bwConfig = new BatchWriterConfig();
-    bwConfig.setMaxWriteThreads(0);
+    assertThrows(IllegalArgumentException.class, () -> 
bwConfig.setMaxWriteThreads(0));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testNegativeMaxWriteThreads() {
     BatchWriterConfig bwConfig = new BatchWriterConfig();
-    bwConfig.setMaxWriteThreads(-1);
+    assertThrows(IllegalArgumentException.class, () -> 
bwConfig.setMaxWriteThreads(-1));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/client/IteratorSettingTest.java 
b/core/src/test/java/org/apache/accumulo/core/client/IteratorSettingTest.java
index 0723cc7..08185b2 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/client/IteratorSettingTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/client/IteratorSettingTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.client;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -118,9 +119,10 @@ public class IteratorSettingTest {
   /**
    * Iterator names cannot contain dots. Throw IllegalArgumentException is 
invalid name is used.
    */
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testIteratorNameCannotContainDot() {
-    new IteratorSetting(500, "iterator.name.with.dots", 
Combiner.class.getName());
+    assertThrows(IllegalArgumentException.class,
+        () -> new IteratorSetting(500, "iterator.name.with.dots", 
Combiner.class.getName()));
   }
 
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/client/ZooKeeperInstanceTest.java 
b/core/src/test/java/org/apache/accumulo/core/client/ZooKeeperInstanceTest.java
index 1c28d9c..aac8ed6 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/client/ZooKeeperInstanceTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/client/ZooKeeperInstanceTest.java
@@ -23,6 +23,7 @@ import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.List;
 import java.util.UUID;
@@ -81,16 +82,16 @@ public class ZooKeeperInstanceTest {
     EasyMock.resetToDefault(zc);
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidConstruction() {
     ClientConfiguration config = createMock(ClientConfiguration.class);
     expect(config.get(INSTANCE_ID)).andReturn(IID_STRING);
     mockNameConstruction(config);
     replay(config);
-    new ZooKeeperInstance(config);
+    assertThrows(IllegalArgumentException.class, () -> new 
ZooKeeperInstance(config));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidConstruction2() {
     ClientConfiguration config = createMock(ClientConfiguration.class);
     expect(config.get(INSTANCE_ID)).andReturn(null);
@@ -98,7 +99,7 @@ public class ZooKeeperInstanceTest {
     expect(config.get(INSTANCE_ZK_HOST)).andReturn("zk1");
     expect(config.get(INSTANCE_ZK_TIMEOUT)).andReturn("30");
     replay(config);
-    new ZooKeeperInstance(config);
+    assertThrows(IllegalArgumentException.class, () -> new 
ZooKeeperInstance(config));
   }
 
   @Test
@@ -128,25 +129,25 @@ public class ZooKeeperInstanceTest {
     assertEquals(IID_STRING, zki.getInstanceID());
   }
 
-  @Test(expected = RuntimeException.class)
+  @Test
   public void testGetInstanceID_NoMapping() {
     ClientConfiguration config = createMock(ClientConfiguration.class);
     expect(zc.get(Constants.ZROOT + Constants.ZINSTANCES + 
"/instance")).andReturn(null);
     replay(zc);
     EasyMock.reset(config, zcf);
-    new ZooKeeperInstance(config, zcf);
+    assertThrows(RuntimeException.class, () -> new ZooKeeperInstance(config, 
zcf));
   }
 
-  @Test(expected = RuntimeException.class)
+  @Test
   public void testGetInstanceID_IDMissingForName() {
     expect(zc.get(Constants.ZROOT + Constants.ZINSTANCES + "/instance"))
         .andReturn(IID_STRING.getBytes(UTF_8));
     expect(zc.get(Constants.ZROOT + "/" + IID_STRING)).andReturn(null);
     replay(zc);
-    zki.getInstanceID();
+    assertThrows(RuntimeException.class, () -> zki.getInstanceID());
   }
 
-  @Test(expected = RuntimeException.class)
+  @Test
   public void testGetInstanceID_IDMissingForID() {
     ClientConfiguration config = createMock(ClientConfiguration.class);
     mockIdConstruction(config);
@@ -154,7 +155,7 @@ public class ZooKeeperInstanceTest {
     zki = new ZooKeeperInstance(config, zcf);
     expect(zc.get(Constants.ZROOT + "/" + IID_STRING)).andReturn(null);
     replay(zc);
-    zki.getInstanceID();
+    assertThrows(RuntimeException.class, () -> zki.getInstanceID());
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/client/admin/DelegationTokenConfigTest.java
 
b/core/src/test/java/org/apache/accumulo/core/client/admin/DelegationTokenConfigTest.java
index 02d5930..fd7dd3e 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/client/admin/DelegationTokenConfigTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/client/admin/DelegationTokenConfigTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.core.client.admin;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.concurrent.TimeUnit;
 
@@ -50,18 +51,21 @@ public class DelegationTokenConfigTest {
 
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidLifetime() {
-    new DelegationTokenConfig().setTokenLifetime(-1, TimeUnit.DAYS);
+    assertThrows(IllegalArgumentException.class,
+        () -> new DelegationTokenConfig().setTokenLifetime(-1, TimeUnit.DAYS));
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testSetInvalidTimeUnit() {
-    new DelegationTokenConfig().setTokenLifetime(5, null);
+    assertThrows(NullPointerException.class,
+        () -> new DelegationTokenConfig().setTokenLifetime(5, null));
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testGetInvalidTimeUnit() {
-    new DelegationTokenConfig().getTokenLifetime(null);
+    assertThrows(NullPointerException.class,
+        () -> new DelegationTokenConfig().getTokenLifetime(null));
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/client/lexicoder/ListLexicoderTest.java
 
b/core/src/test/java/org/apache/accumulo/core/client/lexicoder/ListLexicoderTest.java
index 4dcd083..f0e13d1 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/client/lexicoder/ListLexicoderTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/client/lexicoder/ListLexicoderTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.client.lexicoder;
 
 import static java.util.Collections.emptyList;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -96,8 +97,9 @@ public class ListLexicoderTest extends AbstractLexicoderTest {
     assertDecodes(new ListLexicoder<>(new LongLexicoder()), data5);
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testRejectsEmptyLists() {
-    new ListLexicoder<>(new LongLexicoder()).encode(emptyList());
+    assertThrows(IllegalArgumentException.class,
+        () -> new ListLexicoder<>(new LongLexicoder()).encode(emptyList()));
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/client/lexicoder/SequenceLexicoderTest.java
 
b/core/src/test/java/org/apache/accumulo/core/client/lexicoder/SequenceLexicoderTest.java
index 302c7d6..3a61dac 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/client/lexicoder/SequenceLexicoderTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/client/lexicoder/SequenceLexicoderTest.java
@@ -22,6 +22,7 @@ import static java.util.Arrays.asList;
 import static java.util.Collections.emptyList;
 import static java.util.Collections.singletonList;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -73,8 +74,9 @@ public class SequenceLexicoderTest extends 
AbstractLexicoderTest {
     assertDecodes(new SequenceLexicoder<>(new StringLexicoder()), data5);
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void tesRejectsTrailingBytes() {
-    new SequenceLexicoder<>(new StringLexicoder()).decode(new byte[] {10});
+    assertThrows(IllegalArgumentException.class,
+        () -> new SequenceLexicoder<>(new StringLexicoder()).decode(new byte[] 
{10}));
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/client/rfile/RFileClientTest.java 
b/core/src/test/java/org/apache/accumulo/core/client/rfile/RFileClientTest.java
index f3e9779..52e15f8 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/client/rfile/RFileClientTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/client/rfile/RFileClientTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.client.rfile;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -688,7 +689,7 @@ public class RFileClientTest {
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testOutOfOrder() throws Exception {
     // test that exception declared in API is thrown
     Key k1 = new Key("r1", "f1", "q1");
@@ -701,11 +702,11 @@ public class RFileClientTest {
     String testFile = createTmpTestFile();
     try (RFileWriter writer = 
RFile.newWriter().to(testFile).withFileSystem(localFs).build()) {
       writer.append(k2, v2);
-      writer.append(k1, v1);
+      assertThrows(IllegalArgumentException.class, () -> writer.append(k1, 
v1));
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testOutOfOrderIterable() throws Exception {
     // test that exception declared in API is thrown
     Key k1 = new Key("r1", "f1", "q1");
@@ -721,11 +722,11 @@ public class RFileClientTest {
     LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
     String testFile = createTmpTestFile();
     try (RFileWriter writer = 
RFile.newWriter().to(testFile).withFileSystem(localFs).build()) {
-      writer.append(data);
+      assertThrows(IllegalArgumentException.class, () -> writer.append(data));
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadVis() throws Exception {
     // this test has two purposes ensure an exception is thrown and ensure the 
exception document in
     // the javadoc is thrown
@@ -734,11 +735,11 @@ public class RFileClientTest {
     try (RFileWriter writer = 
RFile.newWriter().to(testFile).withFileSystem(localFs).build()) {
       writer.startDefaultLocalityGroup();
       Key k1 = new Key("r1", "f1", "q1", "(A&(B");
-      writer.append(k1, new Value(""));
+      assertThrows(IllegalArgumentException.class, () -> writer.append(k1, new 
Value("")));
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadVisIterable() throws Exception {
     // test append(iterable) method
     LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
@@ -747,42 +748,43 @@ public class RFileClientTest {
       writer.startDefaultLocalityGroup();
       Key k1 = new Key("r1", "f1", "q1", "(A&(B");
       Entry<Key,Value> entry = new AbstractMap.SimpleEntry<>(k1, new 
Value(""));
-      writer.append(Collections.singletonList(entry));
+      assertThrows(IllegalArgumentException.class,
+          () -> writer.append(Collections.singletonList(entry)));
     }
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testDoubleStart() throws Exception {
     LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
     String testFile = createTmpTestFile();
     try (RFileWriter writer = 
RFile.newWriter().to(testFile).withFileSystem(localFs).build()) {
       writer.startDefaultLocalityGroup();
-      writer.startDefaultLocalityGroup();
+      assertThrows(IllegalStateException.class, 
writer::startDefaultLocalityGroup);
     }
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testAppendStartDefault() throws Exception {
     LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
     String testFile = createTmpTestFile();
     try (RFileWriter writer = 
RFile.newWriter().to(testFile).withFileSystem(localFs).build()) {
       writer.append(new Key("r1", "f1", "q1"), new Value("1"));
-      writer.startDefaultLocalityGroup();
+      assertThrows(IllegalStateException.class, 
writer::startDefaultLocalityGroup);
     }
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testStartAfter() throws Exception {
     LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
     String testFile = createTmpTestFile();
     try (RFileWriter writer = 
RFile.newWriter().to(testFile).withFileSystem(localFs).build()) {
       Key k1 = new Key("r1", "f1", "q1");
       writer.append(k1, new Value(""));
-      writer.startNewLocalityGroup("lg1", "fam1");
+      assertThrows(IllegalStateException.class, () -> 
writer.startNewLocalityGroup("lg1", "fam1"));
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testIllegalColumn() throws Exception {
     LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
     String testFile = createTmpTestFile();
@@ -790,11 +792,11 @@ public class RFileClientTest {
       writer.startNewLocalityGroup("lg1", "fam1");
       Key k1 = new Key("r1", "f1", "q1");
       // should not be able to append the column family f1
-      writer.append(k1, new Value(""));
+      assertThrows(IllegalArgumentException.class, () -> writer.append(k1, new 
Value("")));
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testWrongGroup() throws Exception {
     LocalFileSystem localFs = FileSystem.getLocal(new Configuration());
     String testFile = createTmpTestFile();
@@ -805,7 +807,7 @@ public class RFileClientTest {
       writer.startDefaultLocalityGroup();
       // should not be able to append the column family fam1 to default 
locality group
       Key k2 = new Key("r1", "fam1", "q2");
-      writer.append(k2, new Value(""));
+      assertThrows(IllegalArgumentException.class, () -> writer.append(k2, new 
Value("")));
     }
   }
 
diff --git 
a/core/src/test/java/org/apache/accumulo/core/client/security/tokens/CredentialProviderTokenTest.java
 
b/core/src/test/java/org/apache/accumulo/core/client/security/tokens/CredentialProviderTokenTest.java
index 6f50c2e..39983ec 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/client/security/tokens/CredentialProviderTokenTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/client/security/tokens/CredentialProviderTokenTest.java
@@ -22,6 +22,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 
 import java.io.File;
 import java.net.URL;
@@ -79,25 +80,25 @@ public class CredentialProviderTokenTest {
     assertArrayEquals(token.getPassword(), clone.getPassword());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void missingProperties() {
     CredentialProviderToken token = new CredentialProviderToken();
-    token.init(new Properties());
+    assertThrows(IllegalArgumentException.class, () -> token.init(new 
Properties()));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void missingNameProperty() {
     CredentialProviderToken token = new CredentialProviderToken();
     Properties props = new Properties();
     props.put(CredentialProviderToken.NAME_PROPERTY, "root.password");
-    token.init(props);
+    assertThrows(IllegalArgumentException.class, () -> token.init(props));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void missingProviderProperty() {
     CredentialProviderToken token = new CredentialProviderToken();
     Properties props = new Properties();
     props.put(CredentialProviderToken.CREDENTIAL_PROVIDERS_PROPERTY, 
keystorePath);
-    token.init(props);
+    assertThrows(IllegalArgumentException.class, () -> token.init(props));
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/clientImpl/ScannerOptionsTest.java
 
b/core/src/test/java/org/apache/accumulo/core/clientImpl/ScannerOptionsTest.java
index 47010c8..337c21b 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/clientImpl/ScannerOptionsTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/clientImpl/ScannerOptionsTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.core.clientImpl;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.fail;
 
 import java.util.SortedSet;
@@ -78,11 +79,11 @@ public class ScannerOptionsTest {
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testFetchNullColumn() {
     try (ScannerOptions options = new ScannerOptions()) {
       // Require a non-null instance of Column
-      options.fetchColumn(null);
+      assertThrows(IllegalArgumentException.class, () -> 
options.fetchColumn(null));
     }
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/clientImpl/ThriftTransportKeyTest.java
 
b/core/src/test/java/org/apache/accumulo/core/clientImpl/ThriftTransportKeyTest.java
index 39047a5..62eeb73 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/clientImpl/ThriftTransportKeyTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/clientImpl/ThriftTransportKeyTest.java
@@ -24,6 +24,7 @@ import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.IOException;
 import java.security.PrivilegedExceptionAction;
@@ -62,7 +63,7 @@ public class ThriftTransportKeyTest {
     return new SaslConnectionParams(props, token);
   }
 
-  @Test(expected = RuntimeException.class)
+  @Test
   public void testSslAndSaslErrors() {
     ClientContext clientCtx = createMock(ClientContext.class);
     SslConnectionParams sslParams = createMock(SslConnectionParams.class);
@@ -75,7 +76,9 @@ public class ThriftTransportKeyTest {
     replay(clientCtx);
 
     try {
-      new ThriftTransportKey(HostAndPort.fromParts("localhost", 9999), 120 * 
1000, clientCtx);
+      assertThrows(RuntimeException.class,
+          () -> new ThriftTransportKey(HostAndPort.fromParts("localhost", 
9999), 120 * 1000,
+              clientCtx));
     } finally {
       verify(clientCtx);
     }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/conf/AccumuloConfigurationTest.java
 
b/core/src/test/java/org/apache/accumulo/core/conf/AccumuloConfigurationTest.java
index 28ee628..4044ae6 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/conf/AccumuloConfigurationTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/conf/AccumuloConfigurationTest.java
@@ -99,36 +99,40 @@ public class AccumuloConfigurationTest {
     assertEquals(9999, ports[2]);
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetPortRangeInvalidLow() {
     AccumuloConfiguration c = DefaultConfiguration.getInstance();
     ConfigurationCopy cc = new ConfigurationCopy(c);
     cc.set(Property.TSERV_CLIENTPORT, "1020-1026");
-    int[] ports = cc.getPort(Property.TSERV_CLIENTPORT);
-    assertEquals(3, ports.length);
-    assertEquals(1024, ports[0]);
-    assertEquals(1025, ports[1]);
-    assertEquals(1026, ports[2]);
+    assertThrows(IllegalArgumentException.class, () -> {
+      int[] ports = cc.getPort(Property.TSERV_CLIENTPORT);
+      assertEquals(3, ports.length);
+      assertEquals(1024, ports[0]);
+      assertEquals(1025, ports[1]);
+      assertEquals(1026, ports[2]);
+    });
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetPortRangeInvalidHigh() {
     AccumuloConfiguration c = DefaultConfiguration.getInstance();
     ConfigurationCopy cc = new ConfigurationCopy(c);
     cc.set(Property.TSERV_CLIENTPORT, "65533-65538");
-    int[] ports = cc.getPort(Property.TSERV_CLIENTPORT);
-    assertEquals(3, ports.length);
-    assertEquals(65533, ports[0]);
-    assertEquals(65534, ports[1]);
-    assertEquals(65535, ports[2]);
+    assertThrows(IllegalArgumentException.class, () -> {
+      int[] ports = cc.getPort(Property.TSERV_CLIENTPORT);
+      assertEquals(3, ports.length);
+      assertEquals(65533, ports[0]);
+      assertEquals(65534, ports[1]);
+      assertEquals(65535, ports[2]);
+    });
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetPortInvalidSyntax() {
     AccumuloConfiguration c = DefaultConfiguration.getInstance();
     ConfigurationCopy cc = new ConfigurationCopy(c);
     cc.set(Property.TSERV_CLIENTPORT, "[65533,65538]");
-    cc.getPort(Property.TSERV_CLIENTPORT);
+    assertThrows(IllegalArgumentException.class, () -> 
cc.getPort(Property.TSERV_CLIENTPORT));
   }
 
   private static class TestConfiguration extends AccumuloConfiguration {
diff --git 
a/core/src/test/java/org/apache/accumulo/core/conf/ConfigCheckUtilTest.java 
b/core/src/test/java/org/apache/accumulo/core/conf/ConfigCheckUtilTest.java
index 9574e15..d407736 100644
--- a/core/src/test/java/org/apache/accumulo/core/conf/ConfigCheckUtilTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/conf/ConfigCheckUtilTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.accumulo.core.conf;
 
+import static org.junit.Assert.assertThrows;
+
 import java.util.Map;
 
 import org.apache.accumulo.core.conf.ConfigCheckUtil.ConfigCheckException;
@@ -60,23 +62,23 @@ public class ConfigCheckUtilTest {
     ConfigCheckUtil.validate(m.entrySet());
   }
 
-  @Test(expected = ConfigCheckException.class)
+  @Test
   public void testFail_Prefix() {
     m.put(Property.MANAGER_CLIENTPORT.getKey(), "9999");
     m.put(Property.MANAGER_PREFIX.getKey(), "oops");
-    ConfigCheckUtil.validate(m.entrySet());
+    assertThrows(ConfigCheckException.class, () -> 
ConfigCheckUtil.validate(m.entrySet()));
   }
 
-  @Test(expected = ConfigCheckException.class)
+  @Test
   public void testFail_InstanceZkTimeoutOutOfRange() {
     m.put(Property.INSTANCE_ZK_TIMEOUT.getKey(), "10ms");
-    ConfigCheckUtil.validate(m.entrySet());
+    assertThrows(ConfigCheckException.class, () -> 
ConfigCheckUtil.validate(m.entrySet()));
   }
 
-  @Test(expected = ConfigCheckException.class)
+  @Test
   public void testFail_badCryptoService() {
     m.put(Property.INSTANCE_CRYPTO_SERVICE.getKey(), 
"DoesNotExistCryptoService");
-    ConfigCheckUtil.validate(m.entrySet());
+    assertThrows(ConfigCheckException.class, () -> 
ConfigCheckUtil.validate(m.entrySet()));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/conf/ConfigurationTypeHelperTest.java
 
b/core/src/test/java/org/apache/accumulo/core/conf/ConfigurationTypeHelperTest.java
index e0dde93..cbbaf29 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/conf/ConfigurationTypeHelperTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/conf/ConfigurationTypeHelperTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.core.conf;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.Arrays;
 import java.util.function.Function;
@@ -47,29 +48,34 @@ public class ConfigurationTypeHelperTest {
         ConfigurationTypeHelper.getMemoryAsBytes("20%"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetFixedMemoryAsBytesFailureCases1() {
-    ConfigurationTypeHelper.getFixedMemoryAsBytes("42x");
+    assertThrows(IllegalArgumentException.class,
+        () -> ConfigurationTypeHelper.getFixedMemoryAsBytes("42x"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetFixedMemoryAsBytesFailureCases2() {
-    ConfigurationTypeHelper.getFixedMemoryAsBytes("FooBar");
+    assertThrows(IllegalArgumentException.class,
+        () -> ConfigurationTypeHelper.getFixedMemoryAsBytes("FooBar"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetFixedMemoryAsBytesFailureCases3() {
-    ConfigurationTypeHelper.getFixedMemoryAsBytes("40%");
+    assertThrows(IllegalArgumentException.class,
+        () -> ConfigurationTypeHelper.getFixedMemoryAsBytes("40%"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetMemoryAsBytesFailureCases1() {
-    ConfigurationTypeHelper.getMemoryAsBytes("42x");
+    assertThrows(IllegalArgumentException.class,
+        () -> ConfigurationTypeHelper.getMemoryAsBytes("42x"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetMemoryAsBytesFailureCases2() {
-    ConfigurationTypeHelper.getMemoryAsBytes("FooBar");
+    assertThrows(IllegalArgumentException.class,
+        () -> ConfigurationTypeHelper.getMemoryAsBytes("FooBar"));
   }
 
   @Test
@@ -82,14 +88,16 @@ public class ConfigurationTypeHelperTest {
     assertEquals(42L, ConfigurationTypeHelper.getTimeInMillis("42ms"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetTimeInMillisFailureCase1() {
-    ConfigurationTypeHelper.getTimeInMillis("abc");
+    assertThrows(IllegalArgumentException.class,
+        () -> ConfigurationTypeHelper.getTimeInMillis("abc"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetTimeInMillisFailureCase2() {
-    ConfigurationTypeHelper.getTimeInMillis("ms");
+    assertThrows(IllegalArgumentException.class,
+        () -> ConfigurationTypeHelper.getTimeInMillis("ms"));
   }
 
   @Test
@@ -105,18 +113,19 @@ public class ConfigurationTypeHelperTest {
     assertEquals(1d, ConfigurationTypeHelper.getFraction("1."), delta);
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetFractionFailureCase1() {
-    ConfigurationTypeHelper.getFraction("%");
+    assertThrows(IllegalArgumentException.class, () -> 
ConfigurationTypeHelper.getFraction("%"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetFractionFailureCase2() {
-    ConfigurationTypeHelper.getFraction("abc0%");
+    assertThrows(IllegalArgumentException.class,
+        () -> ConfigurationTypeHelper.getFraction("abc0%"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetFractionFailureCase3() {
-    ConfigurationTypeHelper.getFraction(".%");
+    assertThrows(IllegalArgumentException.class, () -> 
ConfigurationTypeHelper.getFraction(".%"));
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/conf/HadoopCredentialProviderTest.java
 
b/core/src/test/java/org/apache/accumulo/core/conf/HadoopCredentialProviderTest.java
index 07c35eb..5048fa3 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/conf/HadoopCredentialProviderTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/conf/HadoopCredentialProviderTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
 
 import java.io.File;
 import java.net.URL;
@@ -69,14 +70,16 @@ public class HadoopCredentialProviderTest {
     return "jceks://file" + absoluteFilePath.getAbsolutePath();
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testNullConfigOnGetValue() {
-    HadoopCredentialProvider.getValue(null, "alias");
+    assertThrows(NullPointerException.class,
+        () -> HadoopCredentialProvider.getValue(null, "alias"));
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testNullAliasOnGetValue() {
-    HadoopCredentialProvider.getValue(new Configuration(false), null);
+    assertThrows(NullPointerException.class,
+        () -> HadoopCredentialProvider.getValue(new Configuration(false), 
null));
   }
 
   protected void checkCredentialProviders(Configuration conf, 
Map<String,String> expectation) {
diff --git 
a/core/src/test/java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java 
b/core/src/test/java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java
index adf2db5..f3fe2a9 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/data/ArrayByteSequenceTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.core.data;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.nio.ByteBuffer;
 
@@ -36,34 +37,35 @@ public class ArrayByteSequenceTest {
     abs = new ArrayByteSequence(data);
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidByteBufferBounds0() {
-    abs = new ArrayByteSequence(data, -1, 0);
+    assertThrows(IllegalArgumentException.class, () -> abs = new 
ArrayByteSequence(data, -1, 0));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidByteBufferBounds1() {
-    abs = new ArrayByteSequence(data, data.length + 1, 0);
+    assertThrows(IllegalArgumentException.class,
+        () -> abs = new ArrayByteSequence(data, data.length + 1, 0));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidByteBufferBounds2() {
-    abs = new ArrayByteSequence(data, 0, -1);
+    assertThrows(IllegalArgumentException.class, () -> abs = new 
ArrayByteSequence(data, 0, -1));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidByteBufferBounds3() {
-    abs = new ArrayByteSequence(data, 6, 2);
+    assertThrows(IllegalArgumentException.class, () -> abs = new 
ArrayByteSequence(data, 6, 2));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidByteAt0() {
-    abs.byteAt(-1);
+    assertThrows(IllegalArgumentException.class, () -> abs.byteAt(-1));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidByteAt1() {
-    abs.byteAt(data.length);
+    assertThrows(IllegalArgumentException.class, () -> 
abs.byteAt(data.length));
   }
 
   @Test
@@ -72,19 +74,19 @@ public class ArrayByteSequenceTest {
     assertEquals("mile", abs.subSequence(1, 5).toString());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidSubsequence0() {
-    abs.subSequence(5, 1);
+    assertThrows(IllegalArgumentException.class, () -> abs.subSequence(5, 1));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidSubsequence1() {
-    abs.subSequence(-1, 1);
+    assertThrows(IllegalArgumentException.class, () -> abs.subSequence(-1, 1));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidSubsequence3() {
-    abs.subSequence(0, 10);
+    assertThrows(IllegalArgumentException.class, () -> abs.subSequence(0, 10));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/data/ConditionTest.java 
b/core/src/test/java/org/apache/accumulo/core/data/ConditionTest.java
index f25f02c..734de15 100644
--- a/core/src/test/java/org/apache/accumulo/core/data/ConditionTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/data/ConditionTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertThrows;
 
 import org.apache.accumulo.core.client.IteratorSetting;
 import org.apache.accumulo.core.security.ColumnVisibility;
@@ -129,20 +130,20 @@ public class ConditionTest {
     assertArrayEquals(ITERATORS, c.getIterators());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testSetIterators_DuplicateName() {
     IteratorSetting[] iterators = {new IteratorSetting(1, "first", 
"someclass"),
         new IteratorSetting(2, "second", "someotherclass"),
         new IteratorSetting(3, "first", "yetanotherclass")};
-    c.setIterators(iterators);
+    assertThrows(IllegalArgumentException.class, () -> 
c.setIterators(iterators));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testSetIterators_DuplicatePriority() {
     IteratorSetting[] iterators = {new IteratorSetting(1, "first", 
"someclass"),
         new IteratorSetting(2, "second", "someotherclass"),
         new IteratorSetting(1, "third", "yetanotherclass")};
-    c.setIterators(iterators);
+    assertThrows(IllegalArgumentException.class, () -> 
c.setIterators(iterators));
   }
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/data/KeyTest.java 
b/core/src/test/java/org/apache/accumulo/core/data/KeyTest.java
index fbc0eb0..e14d219 100644
--- a/core/src/test/java/org/apache/accumulo/core/data/KeyTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/data/KeyTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.util.ArrayList;
@@ -244,12 +245,12 @@ public class KeyTest {
     assertEquals(k, k2);
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testThrift_Invalid() {
     Key k = new Key("r1", "cf2", "cq2", "cv");
     TKey tk = k.toThrift();
     tk.setRow((byte[]) null);
-    new Key(tk);
+    assertThrows(IllegalArgumentException.class, () -> new Key(tk));
   }
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/data/LoadPlanTest.java 
b/core/src/test/java/org/apache/accumulo/core/data/LoadPlanTest.java
index 6e92a5a..52d298b 100644
--- a/core/src/test/java/org/apache/accumulo/core/data/LoadPlanTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/data/LoadPlanTest.java
@@ -21,6 +21,7 @@ package org.apache.accumulo.core.data;
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static java.util.stream.Collectors.toSet;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.HashSet;
 import java.util.Set;
@@ -31,29 +32,34 @@ import org.apache.hadoop.io.Text;
 import org.junit.Test;
 
 public class LoadPlanTest {
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadRange1() {
-    LoadPlan.builder().loadFileTo("f1.rf", RangeType.TABLE, "a", "a").build();
+    assertThrows(IllegalArgumentException.class,
+        () -> LoadPlan.builder().loadFileTo("f1.rf", RangeType.TABLE, "a", 
"a").build());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadRange2() {
-    LoadPlan.builder().loadFileTo("f1.rf", RangeType.TABLE, "b", "a").build();
+    assertThrows(IllegalArgumentException.class,
+        () -> LoadPlan.builder().loadFileTo("f1.rf", RangeType.TABLE, "b", 
"a").build());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadRange3() {
-    LoadPlan.builder().loadFileTo("f1.rf", RangeType.FILE, "b", "a").build();
+    assertThrows(IllegalArgumentException.class,
+        () -> LoadPlan.builder().loadFileTo("f1.rf", RangeType.FILE, "b", 
"a").build());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadRange4() {
-    LoadPlan.builder().loadFileTo("f1.rf", RangeType.FILE, null, "a").build();
+    assertThrows(IllegalArgumentException.class,
+        () -> LoadPlan.builder().loadFileTo("f1.rf", RangeType.FILE, null, 
"a").build());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadRange5() {
-    LoadPlan.builder().loadFileTo("f1.rf", RangeType.FILE, "a", null).build();
+    assertThrows(IllegalArgumentException.class,
+        () -> LoadPlan.builder().loadFileTo("f1.rf", RangeType.FILE, "a", 
null).build());
   }
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/data/MutationTest.java 
b/core/src/test/java/org/apache/accumulo/core/data/MutationTest.java
index be3c29d..7cec916 100644
--- a/core/src/test/java/org/apache/accumulo/core/data/MutationTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/data/MutationTest.java
@@ -22,6 +22,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -365,7 +366,7 @@ public class MutationTest {
     assertEquals(expected, actual);
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testFluentPutNull() {
     final String fam = "f16bc";
     final String qual = "q1pm2";
@@ -378,7 +379,8 @@ public class MutationTest {
     actual.at().family(fam).qualifier(qual).put(val.getBytes());
     assertEquals(expected, actual);
     assertEquals(34, actual.numBytes());
-    actual.at().family(fam).qualifier(qual).put("test2");
+    assertThrows(IllegalStateException.class,
+        () -> actual.at().family(fam).qualifier(qual).put("test2"));
   }
 
   @Test
@@ -874,13 +876,13 @@ public class MutationTest {
     assertEquals(m1, m2);
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testThrift_Invalid() {
     Mutation m1 = new Mutation("r1");
     m1.put("cf1", "cq1", "v1");
     TMutation tm1 = m1.toThrift();
     tm1.setRow((byte[]) null);
-    new Mutation(tm1);
+    assertThrows(IllegalArgumentException.class, () -> new Mutation(tm1));
   }
 
   /*
@@ -913,12 +915,12 @@ public class MutationTest {
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testSanityCheck() {
     Mutation m = new Mutation("too big mutation");
     m.put("cf", "cq1", "v");
     m.estRowAndLargeValSize += (Long.MAX_VALUE / 2);
-    m.put("cf", "cq2", "v");
+    assertThrows(IllegalArgumentException.class, () -> m.put("cf", "cq2", 
"v"));
   }
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/data/ValueTest.java 
b/core/src/test/java/org/apache/accumulo/core/data/ValueTest.java
index 9401cb3..97f8921 100644
--- a/core/src/test/java/org/apache/accumulo/core/data/ValueTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/data/ValueTest.java
@@ -27,6 +27,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.io.ByteArrayInputStream;
@@ -61,25 +62,25 @@ public class ValueTest {
     assertEquals(0, v.get().length);
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testNullBytesConstructor() {
-    new Value((byte[]) null);
+    assertThrows(NullPointerException.class, () -> new Value((byte[]) null));
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testNullCopyConstructor() {
-    new Value((Value) null);
+    assertThrows(NullPointerException.class, () -> new Value((Value) null));
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testNullByteBufferConstructor() {
-    new Value((ByteBuffer) null);
+    assertThrows(NullPointerException.class, () -> new Value((ByteBuffer) 
null));
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testNullSet() {
     Value v = new Value();
-    v.set(null);
+    assertThrows(NullPointerException.class, () -> v.set(null));
   }
 
   @Test
@@ -199,9 +200,9 @@ public class ValueTest {
     assertEquals(v2, v1);
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testNullCharSequence() {
-    new Value((CharSequence) null);
+    assertThrows(NullPointerException.class, () -> new Value((CharSequence) 
null));
   }
 
   @Test
@@ -211,8 +212,8 @@ public class ValueTest {
     assertEquals(v2, v1);
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testNullText() {
-    new Value((Text) null);
+    assertThrows(NullPointerException.class, () -> new Value((Text) null));
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java 
b/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java
index 1f8e29c..b9b5ca8 100644
--- a/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -1703,9 +1704,10 @@ public class RFileTest {
     trf.closeReader();
   }
 
-  @Test(expected = NullPointerException.class)
-  public void testMissingUnreleasedVersions() throws Exception {
-    runVersionTest(5, getAccumuloConfig(ConfigMode.CRYPTO_OFF));
+  @Test
+  public void testMissingUnreleasedVersions() {
+    assertThrows(NullPointerException.class,
+        () -> runVersionTest(5, getAccumuloConfig(ConfigMode.CRYPTO_OFF)));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/file/rfile/RelativeKeyTest.java 
b/core/src/test/java/org/apache/accumulo/core/file/rfile/RelativeKeyTest.java
index 826be51..be1bafe 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/file/rfile/RelativeKeyTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/file/rfile/RelativeKeyTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.core.file.rfile;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -184,14 +185,15 @@ public class RelativeKeyTest {
     assertEquals(expectedKeys.get(1), skippr.rk.getKey());
   }
 
-  @Test(expected = EOFException.class)
-  public void testSeekAfterEverythingWrongCount() throws IOException {
+  @Test
+  public void testSeekAfterEverythingWrongCount() {
     Key seekKey = new Key("s", "t", "u", "v", 1);
     Key prevKey = new Key();
     Key currKey = null;
     MutableByteSequence value = new MutableByteSequence(new byte[64], 0, 0);
 
-    RelativeKey.fastSkip(in, seekKey, value, prevKey, currKey, 
expectedKeys.size() + 1);
+    assertThrows(EOFException.class,
+        () -> RelativeKey.fastSkip(in, seekKey, value, prevKey, currKey, 
expectedKeys.size() + 1));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/iterators/SortedMapIteratorTest.java
 
b/core/src/test/java/org/apache/accumulo/core/iterators/SortedMapIteratorTest.java
index 51f8700..1ed0fa8 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/iterators/SortedMapIteratorTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/iterators/SortedMapIteratorTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.accumulo.core.iterators;
 
+import static org.junit.Assert.assertThrows;
+
 import java.util.TreeMap;
 
 import org.apache.accumulo.core.client.SampleNotPresentException;
@@ -28,10 +30,10 @@ import org.junit.Test;
 
 public class SortedMapIteratorTest {
 
-  @Test(expected = SampleNotPresentException.class)
+  @Test
   public void testSampleNotPresent() {
     SortedMapIterator smi = new SortedMapIterator(new TreeMap<>());
-    smi.deepCopy(new IteratorEnvironment() {
+    assertThrows(SampleNotPresentException.class, () -> smi.deepCopy(new 
IteratorEnvironment() {
       @Override
       public boolean isSamplingEnabled() {
         return true;
@@ -41,6 +43,6 @@ public class SortedMapIteratorTest {
       public SamplerConfiguration getSamplerConfiguration() {
         return new SamplerConfiguration(RowSampler.class.getName());
       }
-    });
+    }));
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/iterators/user/RowEncodingIteratorTest.java
 
b/core/src/test/java/org/apache/accumulo/core/iterators/user/RowEncodingIteratorTest.java
index 3139c2d..bb33965 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/iterators/user/RowEncodingIteratorTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/iterators/user/RowEncodingIteratorTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.iterators.user;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.io.ByteArrayInputStream;
@@ -157,7 +158,7 @@ public class RowEncodingIteratorTest {
     assertFalse(iter.hasTop());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testEncodeSome() throws IOException {
     byte[] kbVal = new byte[1024];
     // This code is shamelessly borrowed from the WholeRowIteratorTest.
@@ -173,7 +174,7 @@ public class RowEncodingIteratorTest {
     Map<String,String> bigBufferOpts = new HashMap<>();
     bigBufferOpts.put(RowEncodingIterator.MAX_BUFFER_SIZE_OPT, "1K");
     iter.init(src, bigBufferOpts, new DummyIteratorEnv());
-    iter.seek(range, new ArrayList<>(), false);
+    assertThrows(IllegalArgumentException.class, () -> iter.seek(range, new 
ArrayList<>(), false));
     // IllegalArgumentException should be thrown as we can't fit the whole row 
into its buffer
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/iterators/user/WholeRowIteratorTest.java
 
b/core/src/test/java/org/apache/accumulo/core/iterators/user/WholeRowIteratorTest.java
index 5c5d1a1..78c4533 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/iterators/user/WholeRowIteratorTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/iterators/user/WholeRowIteratorTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.iterators.user;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
@@ -42,13 +43,13 @@ import org.junit.Test;
 
 public class WholeRowIteratorTest {
 
-  @Test(expected = IOException.class)
+  @Test
   public void testBadDecodeRow() throws IOException {
     Key k = new Key(new Text("r1"), new Text("cf1234567890"));
     Value v = new Value("v1");
     Value encoded = WholeRowIterator.encodeRow(List.of(k), List.of(v));
     encoded.set(Arrays.copyOfRange(encoded.get(), 0, 10)); // truncate to 10 
bytes only
-    WholeRowIterator.decodeRow(k, encoded);
+    assertThrows(IOException.class, () -> WholeRowIterator.decodeRow(k, 
encoded));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/metadata/schema/LinkingIteratorTest.java
 
b/core/src/test/java/org/apache/accumulo/core/metadata/schema/LinkingIteratorTest.java
index 1d94536..bb929f7 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/metadata/schema/LinkingIteratorTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/metadata/schema/LinkingIteratorTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.metadata.schema;
 
 import static org.apache.accumulo.core.metadata.schema.TabletMetadata.create;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -84,7 +85,7 @@ public class LinkingIteratorTest {
     check(tablets2, new IterFactory(tablets1, tablets2));
   }
 
-  @Test(expected = TabletDeletedException.class)
+  @Test
   public void testMerge() {
     // test for case when a tablet is merged away
     List<TabletMetadata> tablets1 = Arrays.asList(create("4", null, "f"), 
create("4", "f", "m"),
@@ -93,10 +94,11 @@ public class LinkingIteratorTest {
         create("4", "r", "x"), create("4", "x", null));
 
     LinkingIterator li = new LinkingIterator(new IterFactory(tablets1, 
tablets2), new Range());
-
-    while (li.hasNext()) {
-      li.next();
-    }
+    assertThrows(TabletDeletedException.class, () -> {
+      while (li.hasNext()) {
+        li.next();
+      }
+    });
   }
 
   @Test
@@ -140,7 +142,7 @@ public class LinkingIteratorTest {
         new KeyExtent(TableId.of("4"), null, new Text("f")).toMetaRange());
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testIncompleteTable() {
     // the last tablet in a table should have a null end row. Ensure the code 
detects when this does
     // not happen.
@@ -149,9 +151,11 @@ public class LinkingIteratorTest {
     LinkingIterator li = new LinkingIterator(new IterFactory(tablets1, 
tablets1),
         TabletsSection.getRange(TableId.of("4")));
 
-    while (li.hasNext()) {
-      li.next();
-    }
+    assertThrows(IllegalStateException.class, () -> {
+      while (li.hasNext()) {
+        li.next();
+      }
+    });
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/metadata/schema/MetadataTimeTest.java
 
b/core/src/test/java/org/apache/accumulo/core/metadata/schema/MetadataTimeTest.java
index 4018517..5552d92 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/metadata/schema/MetadataTimeTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/metadata/schema/MetadataTimeTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.metadata.schema;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import org.apache.accumulo.core.client.admin.TimeType;
@@ -32,19 +33,19 @@ public class MetadataTimeTest {
   private static final MetadataTime l1234 = new MetadataTime(1234, 
TimeType.LOGICAL);
   private static final MetadataTime l5678 = new MetadataTime(5678, 
TimeType.LOGICAL);
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetInstance_InvalidType() {
-    MetadataTime.parse("X1234");
+    assertThrows(IllegalArgumentException.class, () -> 
MetadataTime.parse("X1234"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetInstance_Logical_ParseFailure() {
-    MetadataTime.parse("LABCD");
+    assertThrows(IllegalArgumentException.class, () -> 
MetadataTime.parse("LABCD"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testGetInstance_Millis_ParseFailure() {
-    MetadataTime.parse("MABCD");
+    assertThrows(IllegalArgumentException.class, () -> 
MetadataTime.parse("MABCD"));
   }
 
   @Test
@@ -77,9 +78,9 @@ public class MetadataTimeTest {
     assertEquals(TimeType.LOGICAL, MetadataTime.getType('L'));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testValueOfOtherChar() {
-    MetadataTime.getType('x');
+    assertThrows(IllegalArgumentException.class, () -> 
MetadataTime.getType('x'));
   }
 
   @Test
@@ -104,14 +105,14 @@ public class MetadataTimeTest {
     assertEquals("L45678", new MetadataTime(45678, TimeType.LOGICAL).encode());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testCompareTypesDiffer1() {
-    m1234.compareTo(l1234);
+    assertThrows(IllegalArgumentException.class, () -> m1234.compareTo(l1234));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testCompareTypesDiffer2() {
-    l1234.compareTo(m1234);
+    assertThrows(IllegalArgumentException.class, () -> l1234.compareTo(m1234));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
 
b/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
index f1afb16..b72cf90 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
@@ -30,6 +30,7 @@ import static 
org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.util.EnumSet;
@@ -160,7 +161,7 @@ public class TabletMetadataTest {
     assertFalse(tm.hasCurrent());
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testFutureAndCurrent() {
     KeyExtent extent = new KeyExtent(TableId.of("5"), new Text("df"), new 
Text("da"));
 
@@ -170,7 +171,8 @@ public class TabletMetadataTest {
 
     SortedMap<Key,Value> rowMap = toRowMap(mutation);
 
-    TabletMetadata.convertRow(rowMap.entrySet().iterator(), 
EnumSet.allOf(ColumnType.class), false);
+    assertThrows(IllegalStateException.class, () -> TabletMetadata
+        .convertRow(rowMap.entrySet().iterator(), 
EnumSet.allOf(ColumnType.class), false));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/replication/ReplicationSchemaTest.java
 
b/core/src/test/java/org/apache/accumulo/core/replication/ReplicationSchemaTest.java
index 3584f8d..3670bbc 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/replication/ReplicationSchemaTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/replication/ReplicationSchemaTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.core.replication;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Mutation;
@@ -41,26 +42,26 @@ public class ReplicationSchemaTest {
     assertEquals(file, extractedFile.toString());
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void failOnNullKeyForFileExtract() {
     Text extractedFile = new Text();
-    StatusSection.getFile(null, extractedFile);
+    assertThrows(NullPointerException.class, () -> StatusSection.getFile(null, 
extractedFile));
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void failOnNullBufferForFileExtract() {
     String file = "hdfs://foo:8020/bar";
     Key k = new Key(file);
     Text extractedFile = null;
-    StatusSection.getFile(k, extractedFile);
+    assertThrows(NullPointerException.class, () -> StatusSection.getFile(k, 
extractedFile));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void failOnExtractEmptyFile() {
     String file = "";
     Key k = new Key(file);
     Text extractedFile = new Text();
-    StatusSection.getFile(k, extractedFile);
+    assertThrows(IllegalArgumentException.class, () -> 
StatusSection.getFile(k, extractedFile));
     assertEquals(file, extractedFile.toString());
   }
 
@@ -78,30 +79,30 @@ public class ReplicationSchemaTest {
     assertEquals(tableId, StatusSection.getTableId(k));
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void failOnNullKeyForTableIdExtract() {
     Text extractedFile = new Text();
-    StatusSection.getFile(null, extractedFile);
+    assertThrows(NullPointerException.class, () -> StatusSection.getFile(null, 
extractedFile));
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void failOnNullBufferForTableIdExtract() {
     String file = "hdfs://foo:8020/bar";
     Key k = new Key(file);
     Text extractedFile = null;
-    StatusSection.getFile(k, extractedFile);
+    assertThrows(NullPointerException.class, () -> StatusSection.getFile(k, 
extractedFile));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void failOnIncorrectStatusColfam() {
     Key k = new Key("file", WorkSection.NAME.toString(), "");
-    StatusSection.getFile(k, new Text());
+    assertThrows(IllegalArgumentException.class, () -> 
StatusSection.getFile(k, new Text()));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void failOnIncorrectWorkColfam() {
     Key k = new Key("file", StatusSection.NAME.toString(), "");
-    WorkSection.getFile(k, new Text());
+    assertThrows(IllegalArgumentException.class, () -> WorkSection.getFile(k, 
new Text()));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/security/AuthorizationsTest.java 
b/core/src/test/java/org/apache/accumulo/core/security/AuthorizationsTest.java
index 04079f4..d0fa476 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/security/AuthorizationsTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/security/AuthorizationsTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.security;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.nio.ByteBuffer;
@@ -93,12 +94,13 @@ public class AuthorizationsTest {
     assertArrayEquals(expected.getAuthorizationsArray(), 
actual.getAuthorizationsArray());
   }
 
-  @Test(expected = UnsupportedOperationException.class)
+  @Test
   public void testUnmodifiableList() {
     Authorizations expected = new Authorizations("foo");
     Authorizations actual = new Authorizations("foo");
 
     assertArrayEquals(expected.getAuthorizationsArray(), 
actual.getAuthorizationsArray());
-    actual.getAuthorizationsBB().add(ByteBuffer.wrap(new byte[] {'a'}));
+    assertThrows(UnsupportedOperationException.class,
+        () -> actual.getAuthorizationsBB().add(ByteBuffer.wrap(new byte[] 
{'a'})));
   }
 }
diff --git 
a/core/src/test/java/org/apache/accumulo/core/spi/fs/SpaceAwareVolumeChooserTest.java
 
b/core/src/test/java/org/apache/accumulo/core/spi/fs/SpaceAwareVolumeChooserTest.java
index ac50822..4598f06 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/spi/fs/SpaceAwareVolumeChooserTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/spi/fs/SpaceAwareVolumeChooserTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.core.spi.fs;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.IOException;
 import java.util.Set;
@@ -121,12 +122,13 @@ public class SpaceAwareVolumeChooserTest {
 
   }
 
-  @Test(expected = UncheckedExecutionException.class)
+  @Test
   public void testNoFreeSpace() throws IOException {
+    assertThrows(UncheckedExecutionException.class, () -> {
+      testSpecificSetup(0L, 0L, null, 1, false);
 
-    testSpecificSetup(0L, 0L, null, 1, false);
-
-    makeChoices();
+      makeChoices();
+    });
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/util/FastFormatTest.java 
b/core/src/test/java/org/apache/accumulo/core/util/FastFormatTest.java
index 0bc3799..f6440b6 100644
--- a/core/src/test/java/org/apache/accumulo/core/util/FastFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/util/FastFormatTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.util;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.Arrays;
 
@@ -97,20 +98,23 @@ public class FastFormatTest {
         new String(FastFormat.toZeroPaddedString(1296, 7, 36, new byte[] {'P', 
'A'}), UTF_8));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testNegative1() {
-    FastFormat.toZeroPaddedString(-5, 1, 36, new byte[] {});
+    assertThrows(IllegalArgumentException.class,
+        () -> FastFormat.toZeroPaddedString(-5, 1, 36, new byte[] {}));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testNegative2() {
     byte[] str = new byte[8];
-    FastFormat.toZeroPaddedString(str, 0, -5, 1, 36, new byte[] {});
+    assertThrows(IllegalArgumentException.class,
+        () -> FastFormat.toZeroPaddedString(str, 0, -5, 1, 36, new byte[] {}));
   }
 
-  @Test(expected = ArrayIndexOutOfBoundsException.class)
+  @Test
   public void testArrayOutOfBounds() {
     byte[] str = new byte[8];
-    FastFormat.toZeroPaddedString(str, 4, 64L, 4, 16, new byte[] {'P'});
+    assertThrows(ArrayIndexOutOfBoundsException.class,
+        () -> FastFormat.toZeroPaddedString(str, 4, 64L, 4, 16, new byte[] 
{'P'}));
   }
 }
diff --git a/core/src/test/java/org/apache/accumulo/core/util/OpTimerTest.java 
b/core/src/test/java/org/apache/accumulo/core/util/OpTimerTest.java
index 59fcf84..6624c2c 100644
--- a/core/src/test/java/org/apache/accumulo/core/util/OpTimerTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/util/OpTimerTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.core.util;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.util.concurrent.TimeUnit;
@@ -85,7 +86,7 @@ public class OpTimerTest {
   /**
    * Verify that IllegalStateException is thrown when calling stop when timer 
has not been started.
    */
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void verifyExceptionCallingStopWhenNotStarted() {
 
     OpTimer timer = new OpTimer();
@@ -93,13 +94,13 @@ public class OpTimerTest {
     assertFalse(timer.isRunning());
 
     // should throw exception - not running
-    timer.stop();
+    assertThrows(IllegalStateException.class, timer::stop);
   }
 
   /**
    * Verify that IllegalStateException is thrown when calling start on running 
timer.
    */
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void verifyExceptionCallingStartWhenRunning() {
 
     OpTimer timer = new OpTimer().start();
@@ -114,13 +115,13 @@ public class OpTimerTest {
     assertTrue(timer.isRunning());
 
     // should throw exception - already running
-    timer.start();
+    assertThrows(IllegalStateException.class, timer::start);
   }
 
   /**
    * Verify that IllegalStateException is thrown when calling stop when not 
running.
    */
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void verifyExceptionCallingStopWhenNotRunning() {
 
     OpTimer timer = new OpTimer().start();
@@ -139,7 +140,7 @@ public class OpTimerTest {
     assertFalse(timer.isRunning());
 
     // should throw exception
-    timer.stop();
+    assertThrows(IllegalStateException.class, timer::stop);
   }
 
   /**
diff --git 
a/core/src/test/java/org/apache/accumulo/core/util/UnsynchronizedBufferTest.java
 
b/core/src/test/java/org/apache/accumulo/core/util/UnsynchronizedBufferTest.java
index 2d44494..5e893a0 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/util/UnsynchronizedBufferTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/util/UnsynchronizedBufferTest.java
@@ -125,9 +125,9 @@ public class UnsynchronizedBufferTest {
         Arrays.equals(hadoopBytes, accumuloBytes));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testNextArraySizeNegative() {
-    UnsynchronizedBuffer.nextArraySize(-1);
+    assertThrows(IllegalArgumentException.class, () -> 
UnsynchronizedBuffer.nextArraySize(-1));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/util/format/DefaultFormatterTest.java
 
b/core/src/test/java/org/apache/accumulo/core/util/format/DefaultFormatterTest.java
index fcd5661..8637b3d 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/util/format/DefaultFormatterTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/util/format/DefaultFormatterTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.core.util.format;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.Collections;
 import java.util.Map;
@@ -44,16 +45,16 @@ public class DefaultFormatterTest {
     df = new DefaultFormatter();
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testDoubleInitialize() {
     final FormatterConfig timestampConfig = new 
FormatterConfig().setPrintTimestamps(true);
     df.initialize(empty, timestampConfig);
-    df.initialize(empty, timestampConfig);
+    assertThrows(IllegalStateException.class, () -> df.initialize(empty, 
timestampConfig));
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testNextBeforeInitialize() {
-    df.hasNext();
+    assertThrows(IllegalStateException.class, df::hasNext);
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/core/util/format/HexFormatterTest.java 
b/core/src/test/java/org/apache/accumulo/core/util/format/HexFormatterTest.java
index 065eaab..988e1f6 100644
--- 
a/core/src/test/java/org/apache/accumulo/core/util/format/HexFormatterTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/util/format/HexFormatterTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.core.util.format;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Map;
@@ -68,14 +69,14 @@ public class HexFormatterTest {
     assertEquals(bytes, formatter.interpretRow(new Text(row)));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInterpretBadRow0() {
-    formatter.interpretRow(new Text("!"));
+    assertThrows(IllegalArgumentException.class, () -> 
formatter.interpretRow(new Text("!")));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInterpretBadRow1() {
-    formatter.interpretRow(new Text("z"));
+    assertThrows(IllegalArgumentException.class, () -> 
formatter.interpretRow(new Text("z")));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooReaderWriterTest.java
 
b/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooReaderWriterTest.java
index 37d7395..ce93c6b 100644
--- 
a/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooReaderWriterTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooReaderWriterTest.java
@@ -25,6 +25,7 @@ import static org.easymock.EasyMock.expectLastCall;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertThrows;
 
 import org.apache.accumulo.fate.util.Retry;
 import org.apache.accumulo.fate.util.Retry.RetryFactory;
@@ -94,7 +95,7 @@ public class ZooReaderWriterTest {
     verify(zk, zrw, retryFactory, retry);
   }
 
-  @Test(expected = SessionExpiredException.class)
+  @Test
   public void testMutateNodeCreationFails() throws Exception {
     final String path = "/foo";
     final byte[] value = {0};
@@ -107,7 +108,7 @@ public class ZooReaderWriterTest {
 
     replay(zk, zrw, retryFactory, retry);
 
-    zrw.mutateOrCreate(path, value, mutator);
+    assertThrows(SessionExpiredException.class, () -> zrw.mutateOrCreate(path, 
value, mutator));
   }
 
   @Test
diff --git 
a/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooSessionTest.java 
b/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooSessionTest.java
index ae4d02a..c63b0ff 100644
--- a/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooSessionTest.java
+++ b/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooSessionTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.accumulo.fate.zookeeper;
 
+import static org.junit.Assert.assertThrows;
+
 import org.apache.zookeeper.ZooKeeper;
 import org.junit.Test;
 
@@ -26,10 +28,12 @@ public class ZooSessionTest {
   private static final int MINIMUM_TIMEOUT = 10000;
   private static final String UNKNOWN_HOST = 
"hostname.that.should.not.exist.example.com:2181";
 
-  @Test(expected = RuntimeException.class, timeout = MINIMUM_TIMEOUT * 4)
-  public void testUnknownHost() throws Exception {
-    ZooKeeper session = ZooSession.connect(UNKNOWN_HOST, MINIMUM_TIMEOUT, 
null, null, null);
-    session.close();
+  @Test(timeout = MINIMUM_TIMEOUT * 4)
+  public void testUnknownHost() {
+    assertThrows(RuntimeException.class, () -> {
+      ZooKeeper session = ZooSession.connect(UNKNOWN_HOST, MINIMUM_TIMEOUT, 
null, null, null);
+      session.close();
+    });
   }
 
 }
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/ServerContextTest.java 
b/server/base/src/test/java/org/apache/accumulo/server/ServerContextTest.java
index 7621ba6..d3a1c42 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/ServerContextTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/ServerContextTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.server;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -118,10 +119,10 @@ public class ServerContextTest {
     });
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testCanRun() {
     // ensure this fails with older versions
-    ServerContext.ensureDataVersionCompatible(7);
+    assertThrows(IllegalStateException.class, () -> 
ServerContext.ensureDataVersionCompatible(7));
   }
 
 }
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/manager/state/TabletLocationStateTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/manager/state/TabletLocationStateTest.java
index a9e0e8f..ef6b062 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/manager/state/TabletLocationStateTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/manager/state/TabletLocationStateTest.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Collection;
@@ -85,16 +86,13 @@ public class TabletLocationStateTest {
     assertTrue(tls.chopped);
   }
 
-  @Test(expected = TabletLocationState.BadLocationStateException.class)
-  public void testConstruction_FutureAndCurrent() throws Exception {
+  @Test
+  public void testConstruction_FutureAndCurrent() {
     expect(keyExtent.toMetaRow()).andReturn(new Text("entry"));
     replay(keyExtent);
-    try {
-      new TabletLocationState(keyExtent, future, current, last, null, walogs, 
true);
-    } catch (TabletLocationState.BadLocationStateException e) {
-      assertEquals(new Text("entry"), e.getEncodedEndRow());
-      throw (e);
-    }
+    var e = assertThrows(TabletLocationState.BadLocationStateException.class,
+        () -> new TabletLocationState(keyExtent, future, current, last, null, 
walogs, true));
+    assertEquals(new Text("entry"), e.getEncodedEndRow());
   }
 
   @Test
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/problems/ProblemReportingIteratorTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/problems/ProblemReportingIteratorTest.java
index dcc993b..cd98083 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/problems/ProblemReportingIteratorTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/problems/ProblemReportingIteratorTest.java
@@ -24,6 +24,7 @@ import static org.easymock.EasyMock.verify;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Collection;
@@ -67,9 +68,9 @@ public class ProblemReportingIteratorTest {
     assertEquals(RESOURCE, pri.getResource());
   }
 
-  @Test(expected = UnsupportedOperationException.class)
+  @Test
   public void testInit() {
-    pri.init(null, null, null);
+    assertThrows(UnsupportedOperationException.class, () -> pri.init(null, 
null, null));
   }
 
   @Test
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/rpc/TCredentialsUpdatingInvocationHandlerTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/rpc/TCredentialsUpdatingInvocationHandlerTest.java
index cc63e46..34252cc 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/rpc/TCredentialsUpdatingInvocationHandlerTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/rpc/TCredentialsUpdatingInvocationHandlerTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.server.rpc;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.nio.ByteBuffer;
 import java.util.Map;
@@ -101,31 +102,34 @@ public class TCredentialsUpdatingInvocationHandlerTest {
     assertEquals(KerberosToken.class, cache.get(KerberosToken.CLASS_NAME));
   }
 
-  @Test(expected = ThriftSecurityException.class)
-  public void testMissingPrincipal() throws Exception {
+  @Test
+  public void testMissingPrincipal() {
     final String principal = "root";
     TCredentials tcreds = new TCredentials(principal, KerberosToken.CLASS_NAME,
         ByteBuffer.allocate(0), UUID.randomUUID().toString());
     UGIAssumingProcessor.rpcPrincipal.set(null);
-    proxy.updateArgs(new Object[] {new Object(), tcreds});
+    assertThrows(ThriftSecurityException.class,
+        () -> proxy.updateArgs(new Object[] {new Object(), tcreds}));
   }
 
-  @Test(expected = ThriftSecurityException.class)
-  public void testMismatchedPrincipal() throws Exception {
+  @Test
+  public void testMismatchedPrincipal() {
     final String principal = "root";
     TCredentials tcreds = new TCredentials(principal, KerberosToken.CLASS_NAME,
         ByteBuffer.allocate(0), UUID.randomUUID().toString());
     UGIAssumingProcessor.rpcPrincipal.set(principal + "foobar");
-    proxy.updateArgs(new Object[] {new Object(), tcreds});
+    assertThrows(ThriftSecurityException.class,
+        () -> proxy.updateArgs(new Object[] {new Object(), tcreds}));
   }
 
-  @Test(expected = ThriftSecurityException.class)
-  public void testWrongTokenType() throws Exception {
+  @Test
+  public void testWrongTokenType() {
     final String principal = "root";
     TCredentials tcreds = new TCredentials(principal, 
PasswordToken.class.getName(),
         ByteBuffer.allocate(0), UUID.randomUUID().toString());
     UGIAssumingProcessor.rpcPrincipal.set(principal);
-    proxy.updateArgs(new Object[] {new Object(), tcreds});
+    assertThrows(ThriftSecurityException.class,
+        () -> proxy.updateArgs(new Object[] {new Object(), tcreds}));
   }
 
   @Test
@@ -155,8 +159,8 @@ public class TCredentialsUpdatingInvocationHandlerTest {
     proxy.updateArgs(new Object[] {new Object(), tcreds});
   }
 
-  @Test(expected = ThriftSecurityException.class)
-  public void testDisallowedImpersonationForUser() throws Exception {
+  @Test
+  public void testDisallowedImpersonationForUser() {
     final String proxyServer = "proxy";
     // let "otherproxy" impersonate, but not "proxy"
     cc.set(Property.INSTANCE_RPC_SASL_ALLOWED_USER_IMPERSONATION, 
"otherproxy:*");
@@ -165,11 +169,12 @@ public class TCredentialsUpdatingInvocationHandlerTest {
     TCredentials tcreds = new TCredentials("client", 
KerberosToken.class.getName(),
         ByteBuffer.allocate(0), UUID.randomUUID().toString());
     UGIAssumingProcessor.rpcPrincipal.set(proxyServer);
-    proxy.updateArgs(new Object[] {new Object(), tcreds});
+    assertThrows(ThriftSecurityException.class,
+        () -> proxy.updateArgs(new Object[] {new Object(), tcreds}));
   }
 
-  @Test(expected = ThriftSecurityException.class)
-  public void testDisallowedImpersonationForMultipleUsers() throws Exception {
+  @Test
+  public void testDisallowedImpersonationForMultipleUsers() {
     final String proxyServer = "proxy";
     // let "otherproxy" impersonate, but not "proxy"
     cc.set(Property.INSTANCE_RPC_SASL_ALLOWED_USER_IMPERSONATION,
@@ -179,7 +184,8 @@ public class TCredentialsUpdatingInvocationHandlerTest {
     TCredentials tcreds = new TCredentials("client1", 
KerberosToken.class.getName(),
         ByteBuffer.allocate(0), UUID.randomUUID().toString());
     UGIAssumingProcessor.rpcPrincipal.set(proxyServer);
-    proxy.updateArgs(new Object[] {new Object(), tcreds});
+    assertThrows(ThriftSecurityException.class,
+        () -> proxy.updateArgs(new Object[] {new Object(), tcreds}));
   }
 
   @Test
@@ -195,8 +201,8 @@ public class TCredentialsUpdatingInvocationHandlerTest {
     proxy.updateArgs(new Object[] {new Object(), tcreds});
   }
 
-  @Test(expected = ThriftSecurityException.class)
-  public void testDisallowedImpersonationFromSpecificHost() throws Exception {
+  @Test
+  public void testDisallowedImpersonationFromSpecificHost() {
     final String proxyServer = "proxy", client = "client", host = 
"host.domain.com";
     cc.set(Property.INSTANCE_RPC_SASL_ALLOWED_USER_IMPERSONATION, proxyServer 
+ ":" + client);
     cc.set(Property.INSTANCE_RPC_SASL_ALLOWED_HOST_IMPERSONATION, host);
@@ -206,6 +212,7 @@ public class TCredentialsUpdatingInvocationHandlerTest {
     UGIAssumingProcessor.rpcPrincipal.set(proxyServer);
     // The RPC came from a different host than is allowed
     TServerUtils.clientAddress.set("otherhost.domain.com");
-    proxy.updateArgs(new Object[] {new Object(), tcreds});
+    assertThrows(ThriftSecurityException.class,
+        () -> proxy.updateArgs(new Object[] {new Object(), tcreds}));
   }
 }
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationKeyTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationKeyTest.java
index 18c5d42..d1a2395 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationKeyTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationKeyTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.server.security.delegation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -46,9 +47,9 @@ public class AuthenticationKeyTest {
     keyGen.init(KEY_LENGTH);
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void testNullSecretKey() {
-    new AuthenticationKey(0, 0, 0, null);
+    assertThrows(NullPointerException.class, () -> new AuthenticationKey(0, 0, 
0, null));
   }
 
   @Test
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManagerTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManagerTest.java
index ab8d9de..3ac4c1f 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManagerTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/AuthenticationTokenSecretManagerTest.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.io.ByteArrayInputStream;
@@ -211,7 +212,7 @@ public class AuthenticationTokenSecretManagerTest {
         Arrays.equals(password, password2));
   }
 
-  @Test(expected = InvalidToken.class)
+  @Test
   public void testExpiredPasswordsThrowError() throws Exception {
     // start of the test
     long then = System.currentTimeMillis();
@@ -237,10 +238,10 @@ public class AuthenticationTokenSecretManagerTest {
     AuthenticationTokenIdentifier id = new AuthenticationTokenIdentifier();
     id.readFields(new DataInputStream(new 
ByteArrayInputStream(token.getIdentifier())));
 
-    secretManager.retrievePassword(id);
+    assertThrows(InvalidToken.class, () -> secretManager.retrievePassword(id));
   }
 
-  @Test(expected = InvalidToken.class)
+  @Test
   public void testTokenIssuedInFuture() throws Exception {
     // start of the test
     long then = System.currentTimeMillis();
@@ -265,10 +266,10 @@ public class AuthenticationTokenSecretManagerTest {
     // Increase the value of issueDate
     id.setIssueDate(Long.MAX_VALUE);
 
-    secretManager.retrievePassword(id);
+    assertThrows(InvalidToken.class, () -> secretManager.retrievePassword(id));
   }
 
-  @Test(expected = InvalidToken.class)
+  @Test
   public void testRolledManagerKey() throws Exception {
     // start of the test
     long then = System.currentTimeMillis();
@@ -300,7 +301,7 @@ public class AuthenticationTokenSecretManagerTest {
     secretManager.removeKey(authKey1.getKeyId());
 
     // Should fail -- authKey1 (presumably) expired, cannot authenticate
-    secretManager.retrievePassword(id);
+    assertThrows(InvalidToken.class, () -> secretManager.retrievePassword(id));
   }
 
   @Test(timeout = 20 * 1000)
@@ -391,7 +392,7 @@ public class AuthenticationTokenSecretManagerTest {
         approximateLifetime <= cfg.getTokenLifetime(TimeUnit.MILLISECONDS));
   }
 
-  @Test(expected = AccumuloException.class)
+  @Test
   public void testInvalidRequestedExpirationDate() throws Exception {
     // start of the test
     long then = System.currentTimeMillis();
@@ -409,6 +410,7 @@ public class AuthenticationTokenSecretManagerTest {
     cfg.setTokenLifetime(tokenLifetime + 1, TimeUnit.MILLISECONDS);
 
     // Should throw an exception
-    secretManager.generateToken("u...@example.com", cfg);
+    assertThrows(AccumuloException.class,
+        () -> secretManager.generateToken("u...@example.com", cfg));
   }
 }
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyDistributorTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyDistributorTest.java
index 1258b74..8e4c06e 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyDistributorTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/security/delegation/ZooAuthenticationKeyDistributorTest.java
@@ -27,6 +27,7 @@ import static org.easymock.EasyMock.expectLastCall;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.ByteArrayOutputStream;
 import java.io.DataOutputStream;
@@ -69,7 +70,7 @@ public class ZooAuthenticationKeyDistributorTest {
     zrw = createMock(ZooReaderWriter.class);
   }
 
-  @Test(expected = AuthFailedException.class)
+  @Test
   public void testInitialize() throws Exception {
     ZooAuthenticationKeyDistributor distributor =
         new ZooAuthenticationKeyDistributor(zrw, baseNode);
@@ -82,7 +83,7 @@ public class ZooAuthenticationKeyDistributorTest {
 
     replay(zrw);
 
-    distributor.initialize();
+    assertThrows(AuthFailedException.class, distributor::initialize);
 
     verify(zrw);
   }
@@ -104,62 +105,66 @@ public class ZooAuthenticationKeyDistributorTest {
     verify(zrw);
   }
 
-  @Test(expected = IllegalStateException.class)
-  public void testInitializedNotCalledAdvertise() throws Exception {
+  @Test
+  public void testInitializedNotCalledAdvertise() {
     ZooAuthenticationKeyDistributor distributor =
         new ZooAuthenticationKeyDistributor(zrw, baseNode);
-    distributor.advertise(new AuthenticationKey(1, 0L, 5L, 
keyGen.generateKey()));
+    assertThrows(IllegalStateException.class,
+        () -> distributor.advertise(new AuthenticationKey(1, 0L, 5L, 
keyGen.generateKey())));
   }
 
-  @Test(expected = IllegalStateException.class)
-  public void testInitializedNotCalledCurrentKeys() throws Exception {
+  @Test
+  public void testInitializedNotCalledCurrentKeys() {
     ZooAuthenticationKeyDistributor distributor =
         new ZooAuthenticationKeyDistributor(zrw, baseNode);
-    distributor.getCurrentKeys();
+    assertThrows(IllegalStateException.class, distributor::getCurrentKeys);
   }
 
-  @Test(expected = IllegalStateException.class)
-  public void testInitializedNotCalledRemove() throws Exception {
+  @Test
+  public void testInitializedNotCalledRemove() {
     ZooAuthenticationKeyDistributor distributor =
         new ZooAuthenticationKeyDistributor(zrw, baseNode);
-    distributor.remove(new AuthenticationKey(1, 0L, 5L, keyGen.generateKey()));
+    assertThrows(IllegalStateException.class,
+        () -> distributor.remove(new AuthenticationKey(1, 0L, 5L, 
keyGen.generateKey())));
   }
 
-  @Test(expected = IllegalStateException.class)
-  public void testMissingAcl() throws Exception {
+  @Test
+  public void testMissingAcl() {
     ZooAuthenticationKeyDistributor distributor =
         new ZooAuthenticationKeyDistributor(zrw, baseNode);
-
-    // Attempt to create the directory and fail
-    expect(zrw.exists(baseNode)).andReturn(true);
-    expect(zrw.getACL(eq(baseNode))).andReturn(Collections.emptyList());
-
-    replay(zrw);
-
-    try {
-      distributor.initialize();
-    } finally {
-      verify(zrw);
-    }
+    assertThrows(IllegalStateException.class, () -> {
+      // Attempt to create the directory and fail
+      expect(zrw.exists(baseNode)).andReturn(true);
+      expect(zrw.getACL(eq(baseNode))).andReturn(Collections.emptyList());
+
+      replay(zrw);
+
+      try {
+        distributor.initialize();
+      } finally {
+        verify(zrw);
+      }
+    });
   }
 
-  @Test(expected = IllegalStateException.class)
-  public void testBadAcl() throws Exception {
+  @Test
+  public void testBadAcl() {
     ZooAuthenticationKeyDistributor distributor =
         new ZooAuthenticationKeyDistributor(zrw, baseNode);
-
-    // Attempt to create the directory and fail
-    expect(zrw.exists(baseNode)).andReturn(true);
-    expect(zrw.getACL(eq(baseNode))).andReturn(Collections.singletonList(
-        new ACL(ZooUtil.PRIVATE.get(0).getPerms(), new Id("digest", 
"somethingweird"))));
-
-    replay(zrw);
-
-    try {
-      distributor.initialize();
-    } finally {
-      verify(zrw);
-    }
+    assertThrows(IllegalStateException.class, () -> {
+      // Attempt to create the directory and fail
+      expect(zrw.exists(baseNode)).andReturn(true);
+      expect(zrw.getACL(eq(baseNode))).andReturn(Collections.singletonList(
+          new ACL(ZooUtil.PRIVATE.get(0).getPerms(), new Id("digest", 
"somethingweird"))));
+
+      replay(zrw);
+
+      try {
+        distributor.initialize();
+      } finally {
+        verify(zrw);
+      }
+    });
   }
 
   @Test
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/tablets/TabletTimeTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/tablets/TabletTimeTest.java
index 53b7cdc..4435bd2 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/tablets/TabletTimeTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/tablets/TabletTimeTest.java
@@ -23,6 +23,7 @@ import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
 
 import org.apache.accumulo.core.client.admin.TimeType;
 import org.apache.accumulo.core.metadata.schema.MetadataTime;
@@ -101,14 +102,14 @@ public class TabletTimeTest {
     assertNull(TabletTime.maxMetadataTime(nullTime, nullTime));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testMaxMetadataTime_DifferentTypes1() {
-    TabletTime.maxMetadataTime(l1234, m5678);
+    assertThrows(IllegalArgumentException.class, () -> 
TabletTime.maxMetadataTime(l1234, m5678));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testMaxMetadataTime_DifferentTypes2() {
-    TabletTime.maxMetadataTime(m1234, l5678);
+    assertThrows(IllegalArgumentException.class, () -> 
TabletTime.maxMetadataTime(m1234, l5678));
   }
 
 }
diff --git 
a/server/base/src/test/java/org/apache/accumulo/server/util/TServerUtilsTest.java
 
b/server/base/src/test/java/org/apache/accumulo/server/util/TServerUtilsTest.java
index 2dda0c3..ad32d6a 100644
--- 
a/server/base/src/test/java/org/apache/accumulo/server/util/TServerUtilsTest.java
+++ 
b/server/base/src/test/java/org/apache/accumulo/server/util/TServerUtilsTest.java
@@ -26,6 +26,7 @@ import static org.easymock.EasyMock.verify;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
@@ -173,7 +174,7 @@ public class TServerUtilsTest {
   }
 
   @SuppressFBWarnings(value = "UNENCRYPTED_SERVER_SOCKET", justification = 
"socket for testing")
-  @Test(expected = UnknownHostException.class)
+  @Test
   public void testStartServerUsedPort() throws Exception {
     int port = getFreePort(1024);
     InetAddress addr = InetAddress.getByName("localhost");
@@ -181,7 +182,7 @@ public class TServerUtilsTest {
     conf.set(Property.TSERV_CLIENTPORT, Integer.toString(port));
     try (ServerSocket s = new ServerSocket(port, 50, addr)) {
       assertNotNull(s);
-      startServer();
+      assertThrows(UnknownHostException.class, this::startServer);
     }
   }
 
diff --git 
a/server/gc/src/test/java/org/apache/accumulo/gc/GarbageCollectionTest.java 
b/server/gc/src/test/java/org/apache/accumulo/gc/GarbageCollectionTest.java
index 591c750..35acd89 100644
--- a/server/gc/src/test/java/org/apache/accumulo/gc/GarbageCollectionTest.java
+++ b/server/gc/src/test/java/org/apache/accumulo/gc/GarbageCollectionTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.gc;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.util.ArrayList;
@@ -528,34 +529,36 @@ public class GarbageCollectionTest {
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadFileRef1() {
-    badRefTest("/F00.rf");
+    assertThrows(IllegalArgumentException.class, () -> badRefTest("/F00.rf"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadFileRef2() {
-    badRefTest("../F00.rf");
+    assertThrows(IllegalArgumentException.class, () -> 
badRefTest("../F00.rf"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadFileRef3() {
-    badRefTest("hdfs://foo.com:6000/accumulo/F00.rf");
+    assertThrows(IllegalArgumentException.class,
+        () -> badRefTest("hdfs://foo.com:6000/accumulo/F00.rf"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadFileRef4() {
-    badRefTest("hdfs://foo.com:6000/accumulo/tbls/5/F00.rf");
+    assertThrows(IllegalArgumentException.class,
+        () -> badRefTest("hdfs://foo.com:6000/accumulo/tbls/5/F00.rf"));
   }
 
-  @Test(expected = RuntimeException.class)
+  @Test
   public void testBadFileRef5() {
-    badRefTest("F00.rf");
+    assertThrows(RuntimeException.class, () -> badRefTest("F00.rf"));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testBadFileRef6() {
-    badRefTest("/accumulo/tbls/5/F00.rf");
+    assertThrows(IllegalArgumentException.class, () -> 
badRefTest("/accumulo/tbls/5/F00.rf"));
   }
 
   @Test
diff --git 
a/server/manager/src/test/java/org/apache/accumulo/manager/replication/ManagerReplicationCoordinatorTest.java
 
b/server/manager/src/test/java/org/apache/accumulo/manager/replication/ManagerReplicationCoordinatorTest.java
index eebffe5..61845f1 100644
--- 
a/server/manager/src/test/java/org/apache/accumulo/manager/replication/ManagerReplicationCoordinatorTest.java
+++ 
b/server/manager/src/test/java/org/apache/accumulo/manager/replication/ManagerReplicationCoordinatorTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.manager.replication;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.Collections;
 import java.util.TreeSet;
@@ -54,20 +55,23 @@ public class ManagerReplicationCoordinatorTest {
     assertEquals(inst1, 
coordinator.getRandomTServer(Collections.singleton(inst1), 0));
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void invalidOffset() {
-    Manager manager = EasyMock.createMock(Manager.class);
-    ServerContext context = EasyMock.createMock(ServerContext.class);
-    EasyMock.expect(context.getConfiguration()).andReturn(config).anyTimes();
-    ZooReader reader = EasyMock.createMock(ZooReader.class);
-    EasyMock.expect(manager.getContext()).andReturn(context);
-    EasyMock.expect(manager.getInstanceID()).andReturn("1234");
-    EasyMock.replay(manager, reader);
-
-    ManagerReplicationCoordinator coordinator = new 
ManagerReplicationCoordinator(manager, reader);
-    TServerInstance inst1 = new TServerInstance(HostAndPort.fromParts("host1", 
1234), "session");
-
-    assertEquals(inst1, 
coordinator.getRandomTServer(Collections.singleton(inst1), 1));
+    assertThrows(IllegalArgumentException.class, () -> {
+      Manager manager = EasyMock.createMock(Manager.class);
+      ServerContext context = EasyMock.createMock(ServerContext.class);
+      EasyMock.expect(context.getConfiguration()).andReturn(config).anyTimes();
+      ZooReader reader = EasyMock.createMock(ZooReader.class);
+      EasyMock.expect(manager.getContext()).andReturn(context);
+      EasyMock.expect(manager.getInstanceID()).andReturn("1234");
+      EasyMock.replay(manager, reader);
+
+      ManagerReplicationCoordinator coordinator =
+          new ManagerReplicationCoordinator(manager, reader);
+      TServerInstance inst1 = new 
TServerInstance(HostAndPort.fromParts("host1", 1234), "session");
+
+      assertEquals(inst1, 
coordinator.getRandomTServer(Collections.singleton(inst1), 1));
+    });
   }
 
   @Test
diff --git 
a/server/manager/src/test/java/org/apache/accumulo/manager/upgrade/AccumuloTest.java
 
b/server/manager/src/test/java/org/apache/accumulo/manager/upgrade/AccumuloTest.java
index cd5836e..59f75ca 100644
--- 
a/server/manager/src/test/java/org/apache/accumulo/manager/upgrade/AccumuloTest.java
+++ 
b/server/manager/src/test/java/org/apache/accumulo/manager/upgrade/AccumuloTest.java
@@ -22,6 +22,7 @@ import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.FileNotFoundException;
 
@@ -89,12 +90,14 @@ public class AccumuloTest {
     assertEquals(-1, serverDirs.getAccumuloPersistentVersion(fs, path));
   }
 
-  @Test(expected = RuntimeException.class)
+  @Test
   public void testGetAccumuloPersistentVersion_Fail() throws Exception {
-    expect(fs.listStatus(path)).andThrow(new FileNotFoundException());
-    replay(fs);
+    assertThrows(RuntimeException.class, () -> {
+      expect(fs.listStatus(path)).andThrow(new FileNotFoundException());
+      replay(fs);
 
-    assertEquals(-1, serverDirs.getAccumuloPersistentVersion(fs, path));
+      assertEquals(-1, serverDirs.getAccumuloPersistentVersion(fs, path));
+    });
   }
 
   @Test
diff --git 
a/server/manager/src/test/java/org/apache/accumulo/manager/upgrade/Upgrader9to10Test.java
 
b/server/manager/src/test/java/org/apache/accumulo/manager/upgrade/Upgrader9to10Test.java
index 8e5ef28..7e86afd 100644
--- 
a/server/manager/src/test/java/org/apache/accumulo/manager/upgrade/Upgrader9to10Test.java
+++ 
b/server/manager/src/test/java/org/apache/accumulo/manager/upgrade/Upgrader9to10Test.java
@@ -26,6 +26,7 @@ import static org.easymock.EasyMock.expectLastCall;
 import static org.easymock.EasyMock.replay;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -91,14 +92,16 @@ public class Upgrader9to10Test {
         Upgrader9to10.switchToAllVolumes(resolved));
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testBadRelativeDeleteTooShort() {
-    Upgrader9to10.resolveRelativeDelete("/5a", VOL_PROP);
+    assertThrows(IllegalStateException.class,
+        () -> Upgrader9to10.resolveRelativeDelete("/5a", VOL_PROP));
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void testBadRelativeDeleteTooLong() throws Exception {
-    Upgrader9to10.resolveRelativeDelete("/5a/5a/t-0005/F0009.rf", VOL_PROP);
+    assertThrows(IllegalStateException.class,
+        () -> Upgrader9to10.resolveRelativeDelete("/5a/5a/t-0005/F0009.rf", 
VOL_PROP));
   }
 
   @Test
diff --git 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/InMemoryMapTest.java 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/InMemoryMapTest.java
index ab6db32..8696a5c 100644
--- 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/InMemoryMapTest.java
+++ 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/InMemoryMapTest.java
@@ -696,7 +696,7 @@ public class InMemoryMapTest {
     expectedAll.put(k1, new Value(val));
   }
 
-  @Test(expected = SampleNotPresentException.class)
+  @Test
   public void testDifferentSampleConfig() throws Exception {
     SamplerConfigurationImpl sampleConfig = new 
SamplerConfigurationImpl(RowSampler.class.getName(),
         Map.of("hasher", "murmur3_32", "modulus", "7"));
@@ -713,10 +713,10 @@ public class InMemoryMapTest {
     SamplerConfigurationImpl sampleConfig2 = new SamplerConfigurationImpl(
         RowSampler.class.getName(), Map.of("hasher", "murmur3_32", "modulus", 
"9"));
     MemoryIterator iter = imm.skvIterator(sampleConfig2);
-    iter.seek(new Range(), Set.of(), false);
+    assertThrows(SampleNotPresentException.class, () -> iter.seek(new Range(), 
Set.of(), false));
   }
 
-  @Test(expected = SampleNotPresentException.class)
+  @Test
   public void testNoSampleConfig() throws Exception {
     InMemoryMap imm = newInMemoryMap(false, 
tempFolder.newFolder().getAbsolutePath());
 
@@ -725,7 +725,7 @@ public class InMemoryMapTest {
     SamplerConfigurationImpl sampleConfig2 = new SamplerConfigurationImpl(
         RowSampler.class.getName(), Map.of("hasher", "murmur3_32", "modulus", 
"9"));
     MemoryIterator iter = imm.skvIterator(sampleConfig2);
-    iter.seek(new Range(), Set.of(), false);
+    assertThrows(SampleNotPresentException.class, () -> iter.seek(new Range(), 
Set.of(), false));
   }
 
   @Test
diff --git 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/TabletServerSyncCheckTest.java
 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/TabletServerSyncCheckTest.java
index 217f7b7..ae35d33 100644
--- 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/TabletServerSyncCheckTest.java
+++ 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/TabletServerSyncCheckTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.accumulo.tserver;
 
+import static org.junit.Assert.assertThrows;
+
 import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
@@ -39,15 +41,17 @@ import org.junit.Test;
 public class TabletServerSyncCheckTest {
   private static final String DFS_SUPPORT_APPEND = "dfs.support.append";
 
-  @Test(expected = RuntimeException.class)
+  @Test
   public void testFailureOnExplicitAppendFalseConf() {
     Configuration conf = new Configuration();
     conf.set(DFS_SUPPORT_APPEND, "false");
 
     FileSystem fs = new TestFileSystem(conf);
-    try (var vm = new TestVolumeManagerImpl(Map.of("foo", new VolumeImpl(fs, 
"/")))) {
-      vm.ensureSyncIsEnabled();
-    }
+    assertThrows(RuntimeException.class, () -> {
+      try (var vm = new TestVolumeManagerImpl(Map.of("foo", new VolumeImpl(fs, 
"/")))) {
+        vm.ensureSyncIsEnabled();
+      }
+    });
   }
 
   private class TestFileSystem extends DistributedFileSystem {
diff --git 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/log/LogFileKeyTest.java
 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/log/LogFileKeyTest.java
index 0f04aca..03bf876 100644
--- 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/log/LogFileKeyTest.java
+++ 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/log/LogFileKeyTest.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.tserver.log;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -143,8 +144,8 @@ public class LogFileKeyTest {
     testToFromKey(Integer.MAX_VALUE, 0);
   }
 
-  @Test(expected = IllegalArgumentException.class)
-  public void testNegativeSeq() throws IOException {
-    testToFromKey(1, -1);
+  @Test
+  public void testNegativeSeq() {
+    assertThrows(IllegalArgumentException.class, () -> testToFromKey(1, -1));
   }
 }
diff --git 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/replication/ReplicationProcessorTest.java
 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/replication/ReplicationProcessorTest.java
index b94d60b..95c9626 100644
--- 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/replication/ReplicationProcessorTest.java
+++ 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/replication/ReplicationProcessorTest.java
@@ -25,6 +25,7 @@ import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.Map;
 
@@ -58,7 +59,7 @@ public class ReplicationProcessorTest {
     verify(context);
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void noPeerConfigurationThrowsAnException() {
     ServerContext context = createMock(ServerContext.class);
 
@@ -67,7 +68,7 @@ public class ReplicationProcessorTest {
     replay(context);
 
     ReplicationProcessor proc = new ReplicationProcessor(context);
-    proc.getPeerType("foo");
+    assertThrows(IllegalArgumentException.class, () -> 
proc.getPeerType("foo"));
     verify(context);
   }
 
diff --git 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/tablet/TabletMutationPrepAttemptTest.java
 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/tablet/TabletMutationPrepAttemptTest.java
index 119749e..70a4451 100644
--- 
a/server/tserver/src/test/java/org/apache/accumulo/tserver/tablet/TabletMutationPrepAttemptTest.java
+++ 
b/server/tserver/src/test/java/org/apache/accumulo/tserver/tablet/TabletMutationPrepAttemptTest.java
@@ -21,6 +21,7 @@ package org.apache.accumulo.tserver.tablet;
 import static org.easymock.EasyMock.mock;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.util.ArrayList;
@@ -40,28 +41,28 @@ public class TabletMutationPrepAttemptTest {
     assertTrue(prepared.tabletClosed());
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void callGetSessionWhenClosed() {
     PreparedMutations prepared = new PreparedMutations();
-    prepared.getCommitSession();
+    assertThrows(IllegalStateException.class, prepared::getCommitSession);
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void callGetNonViolatorsWhenClosed() {
     PreparedMutations prepared = new PreparedMutations();
-    prepared.getNonViolators();
+    assertThrows(IllegalStateException.class, prepared::getNonViolators);
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void callGetViolatorsWhenClosed() {
     PreparedMutations prepared = new PreparedMutations();
-    prepared.getViolators();
+    assertThrows(IllegalStateException.class, prepared::getViolators);
   }
 
-  @Test(expected = IllegalStateException.class)
+  @Test
   public void callGetViolationsWhenClosed() {
     PreparedMutations prepared = new PreparedMutations();
-    prepared.getViolations();
+    assertThrows(IllegalStateException.class, prepared::getViolations);
   }
 
   @Test
diff --git a/shell/src/test/java/org/apache/accumulo/shell/ShellUtilTest.java 
b/shell/src/test/java/org/apache/accumulo/shell/ShellUtilTest.java
index 566f744..62b593f 100644
--- a/shell/src/test/java/org/apache/accumulo/shell/ShellUtilTest.java
+++ b/shell/src/test/java/org/apache/accumulo/shell/ShellUtilTest.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.shell;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -64,8 +65,8 @@ public class ShellUtilTest {
     assertEquals(List.of(new Text("line1"), new Text("line2")), output);
   }
 
-  @Test(expected = FileNotFoundException.class)
-  public void testWithMissingFile() throws IOException {
-    ShellUtil.scanFile("missingFile.txt", false);
+  @Test
+  public void testWithMissingFile() {
+    assertThrows(FileNotFoundException.class, () -> 
ShellUtil.scanFile("missingFile.txt", false));
   }
 }
diff --git 
a/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java 
b/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java
index 0a9c014..af242a6 100644
--- a/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ConditionalWriterIT.java
@@ -21,6 +21,7 @@ package org.apache.accumulo.test;
 import static 
org.apache.accumulo.fate.util.UtilWaitThread.sleepUninterruptibly;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -1489,7 +1490,7 @@ public class ConditionalWriterIT extends 
SharedMiniClusterBase {
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testNoConditions() throws AccumuloException, 
AccumuloSecurityException,
       TableExistsException, TableNotFoundException {
     String table = getUniqueNames(1)[0];
@@ -1503,7 +1504,7 @@ public class ConditionalWriterIT extends 
SharedMiniClusterBase {
         cm1.put("tx", "seq", "1");
         cm1.put("data", "x", "a");
 
-        cw.write(cm1);
+        assertThrows(IllegalArgumentException.class, () -> cw.write(cm1));
       }
     }
   }
diff --git 
a/test/src/main/java/org/apache/accumulo/test/MetaConstraintRetryIT.java 
b/test/src/main/java/org/apache/accumulo/test/MetaConstraintRetryIT.java
index 9e0476e..f21d292 100644
--- a/test/src/main/java/org/apache/accumulo/test/MetaConstraintRetryIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/MetaConstraintRetryIT.java
@@ -18,6 +18,8 @@
  */
 package org.apache.accumulo.test;
 
+import static org.junit.Assert.assertThrows;
+
 import org.apache.accumulo.core.client.Accumulo;
 import org.apache.accumulo.core.client.AccumuloClient;
 import org.apache.accumulo.core.clientImpl.Writer;
@@ -40,7 +42,7 @@ public class MetaConstraintRetryIT extends 
AccumuloClusterHarness {
   }
 
   // a test for ACCUMULO-3096
-  @Test(expected = ConstraintViolationException.class)
+  @Test
   public void test() throws Exception {
     try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
       client.securityOperations().grantTablePermission(getAdminPrincipal(), 
MetadataTable.NAME,
@@ -53,14 +55,15 @@ public class MetaConstraintRetryIT extends 
AccumuloClusterHarness {
       Mutation m = new Mutation(extent.toMetaRow());
       // unknown columns should cause constraint violation
       m.put("badcolfam", "badcolqual", "3");
-
-      try {
-        MetadataTableUtil.update(context, w, null, m, extent);
-      } catch (RuntimeException e) {
-        if 
(e.getCause().getClass().equals(ConstraintViolationException.class)) {
-          throw (ConstraintViolationException) e.getCause();
+      assertThrows(ConstraintViolationException.class, () -> {
+        try {
+          MetadataTableUtil.update(context, w, null, m, extent);
+        } catch (RuntimeException e) {
+          if 
(e.getCause().getClass().equals(ConstraintViolationException.class)) {
+            throw (ConstraintViolationException) e.getCause();
+          }
         }
-      }
+      });
     }
   }
 }
diff --git a/test/src/main/java/org/apache/accumulo/test/MetaSplitIT.java 
b/test/src/main/java/org/apache/accumulo/test/MetaSplitIT.java
index e285bb0..1c798e7 100644
--- a/test/src/main/java/org/apache/accumulo/test/MetaSplitIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/MetaSplitIT.java
@@ -19,6 +19,7 @@
 package org.apache.accumulo.test;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -81,12 +82,13 @@ public class MetaSplitIT extends AccumuloClusterHarness {
     }
   }
 
-  @Test(expected = AccumuloException.class)
-  public void testRootTableSplit() throws Exception {
+  @Test
+  public void testRootTableSplit() {
     try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
       SortedSet<Text> splits = new TreeSet<>();
       splits.add(new Text("5"));
-      client.tableOperations().addSplits(RootTable.NAME, splits);
+      assertThrows(AccumuloException.class,
+          () -> client.tableOperations().addSplits(RootTable.NAME, splits));
     }
   }
 
diff --git 
a/test/src/main/java/org/apache/accumulo/test/NewTableConfigurationIT.java 
b/test/src/main/java/org/apache/accumulo/test/NewTableConfigurationIT.java
index 8f231fd..3f3f027 100644
--- a/test/src/main/java/org/apache/accumulo/test/NewTableConfigurationIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/NewTableConfigurationIT.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
 
 import java.util.Collections;
 import java.util.EnumSet;
@@ -98,13 +99,13 @@ public class NewTableConfigurationIT extends 
SharedMiniClusterBase {
    * Attempt to set a locality group with overlapping groups. This test should 
throw an
    * IllegalArgumentException indicating that groups overlap.
    */
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testOverlappingGroupsFail() {
     NewTableConfiguration ntc = new NewTableConfiguration();
     Map<String,Set<Text>> lgroups = new HashMap<>();
     lgroups.put("lg1", Set.of(new Text("colFamA"), new Text("colFamB")));
     lgroups.put("lg2", Set.of(new Text("colFamC"), new Text("colFamB")));
-    ntc.setLocalityGroups(lgroups);
+    assertThrows(IllegalArgumentException.class, () -> 
ntc.setLocalityGroups(lgroups));
   }
 
   /**
@@ -208,7 +209,7 @@ public class NewTableConfigurationIT extends 
SharedMiniClusterBase {
   /**
    * Verify that properties set using NewTableConfiguration must be table 
properties.
    */
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testInvalidTablePropertiesSet() {
     NewTableConfiguration ntc = new NewTableConfiguration();
     Map<String,String> props = new HashMap<>();
@@ -221,7 +222,7 @@ public class NewTableConfigurationIT extends 
SharedMiniClusterBase {
     // These properties should result in an illegalArgumentException
     props.put("invalidProp1", "value1");
     props.put("invalidProp2", "value2");
-    ntc.setProperties(props);
+    assertThrows(IllegalArgumentException.class, () -> 
ntc.setProperties(props));
   }
 
   /**
@@ -431,48 +432,51 @@ public class NewTableConfigurationIT extends 
SharedMiniClusterBase {
   /**
    * Verify iterator conflicts are discovered
    */
-  @Test(expected = IllegalArgumentException.class)
-  public void testIteratorConflictFound1()
-      throws AccumuloException, AccumuloSecurityException, 
TableExistsException {
+  @Test
+  public void testIteratorConflictFound1() {
     try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
-      String tableName = getUniqueNames(2)[0];
-
-      NewTableConfiguration ntc = new NewTableConfiguration();
-      IteratorSetting setting = new IteratorSetting(10, "someName", "foo.bar");
-      ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
-      setting = new IteratorSetting(12, "someName", "foo2.bar");
-      ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
-      client.tableOperations().create(tableName, ntc);
+      assertThrows(IllegalArgumentException.class, () -> {
+        String tableName = getUniqueNames(2)[0];
+
+        NewTableConfiguration ntc = new NewTableConfiguration();
+        IteratorSetting setting = new IteratorSetting(10, "someName", 
"foo.bar");
+        ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
+        setting = new IteratorSetting(12, "someName", "foo2.bar");
+        ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
+        client.tableOperations().create(tableName, ntc);
+      });
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
-  public void testIteratorConflictFound2()
-      throws AccumuloException, AccumuloSecurityException, 
TableExistsException {
+  @Test
+  public void testIteratorConflictFound2() {
     try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
-      String tableName = getUniqueNames(2)[0];
-
-      NewTableConfiguration ntc = new NewTableConfiguration();
-      IteratorSetting setting = new IteratorSetting(10, "someName", "foo.bar");
-      ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
-      setting = new IteratorSetting(10, "anotherName", "foo2.bar");
-      ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
-      client.tableOperations().create(tableName, ntc);
+      assertThrows(IllegalArgumentException.class, () -> {
+        String tableName = getUniqueNames(2)[0];
+
+        NewTableConfiguration ntc = new NewTableConfiguration();
+        IteratorSetting setting = new IteratorSetting(10, "someName", 
"foo.bar");
+        ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
+        setting = new IteratorSetting(10, "anotherName", "foo2.bar");
+        ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
+        client.tableOperations().create(tableName, ntc);
+      });
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
-  public void testIteratorConflictFound3()
-      throws AccumuloException, AccumuloSecurityException, 
TableExistsException {
+  @Test
+  public void testIteratorConflictFound3() {
     try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
-      String tableName = getUniqueNames(2)[0];
-
-      NewTableConfiguration ntc = new NewTableConfiguration();
-      IteratorSetting setting = new IteratorSetting(10, "someName", "foo.bar");
-      ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
-      setting = new IteratorSetting(12, "someName", "foo.bar");
-      ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
-      client.tableOperations().create(tableName, ntc);
+      assertThrows(IllegalArgumentException.class, () -> {
+        String tableName = getUniqueNames(2)[0];
+
+        NewTableConfiguration ntc = new NewTableConfiguration();
+        IteratorSetting setting = new IteratorSetting(10, "someName", 
"foo.bar");
+        ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
+        setting = new IteratorSetting(12, "someName", "foo.bar");
+        ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
+        client.tableOperations().create(tableName, ntc);
+      });
     }
   }
 
@@ -601,7 +605,7 @@ public class NewTableConfigurationIT extends 
SharedMiniClusterBase {
   /**
    * Verify that disjoint check works as expected with setProperties
    */
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testSetPropertiesDisjointCheck() {
     NewTableConfiguration ntc = new NewTableConfiguration();
 
@@ -612,13 +616,13 @@ public class NewTableConfigurationIT extends 
SharedMiniClusterBase {
     Map<String,String> props = new HashMap<>();
     props.put("table.key1", "val1");
     props.put("table.group.lg1", "cat");
-    ntc.setProperties(props);
+    assertThrows(IllegalArgumentException.class, () -> 
ntc.setProperties(props));
   }
 
   /**
    * Verify checkDisjoint works with locality groups.
    */
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testSetLocalityGroupsDisjointCheck() {
     NewTableConfiguration ntc = new NewTableConfiguration();
 
@@ -628,13 +632,13 @@ public class NewTableConfigurationIT extends 
SharedMiniClusterBase {
 
     Map<String,Set<Text>> lgroups = new HashMap<>();
     lgroups.put("lg1", Set.of(new Text("dog")));
-    ntc.setLocalityGroups(lgroups);
+    assertThrows(IllegalArgumentException.class, () -> 
ntc.setLocalityGroups(lgroups));
   }
 
   /**
    * Verify checkDisjoint works with iterators groups.
    */
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testAttachIteratorDisjointCheck() {
     NewTableConfiguration ntc = new NewTableConfiguration();
 
@@ -643,7 +647,8 @@ public class NewTableConfigurationIT extends 
SharedMiniClusterBase {
     ntc.setProperties(props);
 
     IteratorSetting setting = new IteratorSetting(10, "someName", "foo.bar");
-    ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan));
+    assertThrows(IllegalArgumentException.class,
+        () -> ntc.attachIterator(setting, EnumSet.of(IteratorScope.scan)));
   }
 
   /**
diff --git a/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java 
b/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
index ceb9b69..5ea4870 100644
--- a/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
@@ -25,6 +25,7 @@ import static 
org.apache.accumulo.fate.util.UtilWaitThread.sleepUninterruptibly;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -2656,7 +2657,7 @@ public class ShellServerIT extends SharedMiniClusterBase {
    *
    * The splits file will be empty.
    */
-  @Test(expected = 
org.apache.accumulo.core.client.TableNotFoundException.class)
+  @Test
   public void testCreateTableWithEmptySplitFile()
       throws IOException, AccumuloSecurityException, TableNotFoundException, 
AccumuloException {
     String splitsFile = System.getProperty("user.dir") + "/target/splitFile";
@@ -2665,8 +2666,10 @@ public class ShellServerIT extends SharedMiniClusterBase 
{
       SortedSet<Text> expectedSplits = readSplitsFromFile(splitsFile);
       final String tableName = getUniqueNames(1)[0];
       ts.exec("createtable " + tableName + " -sf " + splitsFile, false);
-      Collection<Text> createdSplits = 
client.tableOperations().listSplits(tableName);
-      assertEquals(expectedSplits, new TreeSet<>(createdSplits));
+      assertThrows(TableNotFoundException.class, () -> {
+        Collection<Text> createdSplits = 
client.tableOperations().listSplits(tableName);
+        assertEquals(expectedSplits, new TreeSet<>(createdSplits));
+      });
     } finally {
       Files.delete(Paths.get(splitsFile));
     }
diff --git 
a/test/src/main/java/org/apache/accumulo/test/ZooKeeperPropertiesIT.java 
b/test/src/main/java/org/apache/accumulo/test/ZooKeeperPropertiesIT.java
index f534aaf..3d95e6a 100644
--- a/test/src/main/java/org/apache/accumulo/test/ZooKeeperPropertiesIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ZooKeeperPropertiesIT.java
@@ -18,6 +18,8 @@
  */
 package org.apache.accumulo.test;
 
+import static org.junit.Assert.assertThrows;
+
 import org.apache.accumulo.core.client.Accumulo;
 import org.apache.accumulo.core.client.AccumuloClient;
 import org.apache.accumulo.core.client.AccumuloException;
@@ -27,11 +29,12 @@ import org.junit.Test;
 
 public class ZooKeeperPropertiesIT extends AccumuloClusterHarness {
 
-  @Test(expected = AccumuloException.class)
-  public void testNoFiles() throws Exception {
+  @Test
+  public void testNoFiles() {
     try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
       // Should throw an error as this property can't be changed in ZooKeeper
-      
client.instanceOperations().setProperty(Property.GENERAL_RPC_TIMEOUT.getKey(), 
"60s");
+      assertThrows(AccumuloException.class, () -> client.instanceOperations()
+          .setProperty(Property.GENERAL_RPC_TIMEOUT.getKey(), "60s"));
     }
   }
 
diff --git 
a/test/src/main/java/org/apache/accumulo/test/functional/BulkNewIT.java 
b/test/src/main/java/org/apache/accumulo/test/functional/BulkNewIT.java
index 16b9641..1b66b3c 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/BulkNewIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/BulkNewIT.java
@@ -471,13 +471,14 @@ public class BulkNewIT extends SharedMiniClusterBase {
     }
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testEmptyDir() throws Exception {
     try (AccumuloClient c = 
Accumulo.newClient().from(getClientProps()).build()) {
       String dir = getDir("/testBulkFile-");
       FileSystem fs = getCluster().getFileSystem();
       fs.mkdirs(new Path(dir));
-      c.tableOperations().importDirectory(dir).to(tableName).load();
+      assertThrows(IllegalArgumentException.class,
+          () -> c.tableOperations().importDirectory(dir).to(tableName).load());
     }
   }
 
diff --git 
a/test/src/main/java/org/apache/accumulo/test/functional/CloneTestIT.java 
b/test/src/main/java/org/apache/accumulo/test/functional/CloneTestIT.java
index 89f04b1..e7bb25d 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/CloneTestIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/CloneTestIT.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.test.functional;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -333,17 +334,19 @@ public class CloneTestIT extends AccumuloClusterHarness {
     }
   }
 
-  @Test(expected = AccumuloException.class)
-  public void testCloneRootTable() throws Exception {
+  @Test
+  public void testCloneRootTable() {
     try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
-      client.tableOperations().clone(RootTable.NAME, "rc1", true, null, null);
+      assertThrows(AccumuloException.class,
+          () -> client.tableOperations().clone(RootTable.NAME, "rc1", true, 
null, null));
     }
   }
 
-  @Test(expected = AccumuloException.class)
-  public void testCloneMetadataTable() throws Exception {
+  @Test
+  public void testCloneMetadataTable() {
     try (AccumuloClient client = 
Accumulo.newClient().from(getClientProps()).build()) {
-      client.tableOperations().clone(MetadataTable.NAME, "mc1", true, null, 
null);
+      assertThrows(AccumuloException.class,
+          () -> client.tableOperations().clone(MetadataTable.NAME, "mc1", 
true, null, null));
     }
   }
 }
diff --git 
a/test/src/main/java/org/apache/accumulo/test/functional/KerberosIT.java 
b/test/src/main/java/org/apache/accumulo/test/functional/KerberosIT.java
index c991d6e..add8b27 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/KerberosIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/KerberosIT.java
@@ -21,6 +21,7 @@ package org.apache.accumulo.test.functional;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -578,33 +579,34 @@ public class KerberosIT extends AccumuloITBase {
     assertEquals(dt1.getIdentifier().getKeyId(), 
dt2.getIdentifier().getKeyId());
   }
 
-  @Test(expected = AccumuloException.class)
+  @Test
   public void testDelegationTokenWithInvalidLifetime() throws Throwable {
     // Login as the "root" user
     UserGroupInformation root = 
UserGroupInformation.loginUserFromKeytabAndReturnUGI(
         rootUser.getPrincipal(), rootUser.getKeytab().getAbsolutePath());
     log.info("Logged in as {}", rootUser.getPrincipal());
+    assertThrows(AccumuloException.class, () -> {
+      // As the "root" user, open up the connection and get a delegation token
+      try {
+        root.doAs((PrivilegedExceptionAction<AuthenticationToken>) () -> {
+          AccumuloClient client =
+              mac.createAccumuloClient(rootUser.getPrincipal(), new 
KerberosToken());
+          log.info("Created client as {}", rootUser.getPrincipal());
+          assertEquals(rootUser.getPrincipal(), client.whoami());
 
-    // As the "root" user, open up the connection and get a delegation token
-    try {
-      root.doAs((PrivilegedExceptionAction<AuthenticationToken>) () -> {
-        AccumuloClient client =
-            mac.createAccumuloClient(rootUser.getPrincipal(), new 
KerberosToken());
-        log.info("Created client as {}", rootUser.getPrincipal());
-        assertEquals(rootUser.getPrincipal(), client.whoami());
-
-        // Should fail
-        return client.securityOperations().getDelegationToken(
-            new DelegationTokenConfig().setTokenLifetime(Long.MAX_VALUE, 
TimeUnit.MILLISECONDS));
-      });
-    } catch (UndeclaredThrowableException e) {
-      Throwable cause = e.getCause();
-      if (cause != null) {
-        throw cause;
-      } else {
-        throw e;
+          // Should fail
+          return client.securityOperations().getDelegationToken(
+              new DelegationTokenConfig().setTokenLifetime(Long.MAX_VALUE, 
TimeUnit.MILLISECONDS));
+        });
+      } catch (UndeclaredThrowableException e) {
+        Throwable cause = e.getCause();
+        if (cause != null) {
+          throw cause;
+        } else {
+          throw e;
+        }
       }
-    }
+    });
   }
 
   @Test
@@ -631,7 +633,7 @@ public class KerberosIT extends AccumuloITBase {
         identifier.getExpirationDate() - identifier.getIssueDate() <= (5 * 60 
* 1000));
   }
 
-  @Test(expected = AccumuloSecurityException.class)
+  @Test
   public void testRootUserHasIrrevocablePermissions() throws Exception {
     // Login as the client (provided to `accumulo init` as the "root" user)
     UserGroupInformation.loginUserFromKeytab(rootUser.getPrincipal(),
@@ -643,8 +645,8 @@ public class KerberosIT extends AccumuloITBase {
     // The server-side implementation should prevent the revocation of the 
'root' user's systems
     // permissions
     // because once they're gone, it's possible that they could never be 
restored.
-    client.securityOperations().revokeSystemPermission(rootUser.getPrincipal(),
-        SystemPermission.GRANT);
+    assertThrows(AccumuloSecurityException.class, () -> 
client.securityOperations()
+        .revokeSystemPermission(rootUser.getPrincipal(), 
SystemPermission.GRANT));
   }
 
   /**
diff --git 
a/test/src/main/java/org/apache/accumulo/test/functional/ReadWriteIT.java 
b/test/src/main/java/org/apache/accumulo/test/functional/ReadWriteIT.java
index 8de2a72..830bede 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/ReadWriteIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/ReadWriteIT.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.test.functional;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
 import java.io.ByteArrayOutputStream;
@@ -116,12 +117,12 @@ public class ReadWriteIT extends AccumuloClusterHarness {
     return 6 * 60;
   }
 
-  @Test(expected = RuntimeException.class)
+  @Test
   public void invalidInstanceName() {
     try (AccumuloClient client =
         Accumulo.newClient().to("fake_instance_name", cluster.getZooKeepers())
             .as(getAdminPrincipal(), getAdminToken()).build()) {
-      client.instanceOperations().getTabletServers();
+      assertThrows(RuntimeException.class, () -> 
client.instanceOperations().getTabletServers());
     }
   }
 
diff --git 
a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloInputFormatIT.java
 
b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloInputFormatIT.java
index a397c9c..c8f4fe1 100644
--- 
a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloInputFormatIT.java
+++ 
b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloInputFormatIT.java
@@ -22,6 +22,7 @@ import static java.lang.System.currentTimeMillis;
 import static 
org.apache.accumulo.fate.util.UtilWaitThread.sleepUninterruptibly;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.fail;
 
 import java.io.File;
@@ -439,7 +440,7 @@ public class AccumuloInputFormatIT extends 
AccumuloClusterHarness {
     }
   }
 
-  @Test(expected = IOException.class)
+  @Test
   public void testGetSplitsNoReadPermission() throws Exception {
     Job job = Job.getInstance();
 
@@ -472,7 +473,7 @@ public class AccumuloInputFormatIT extends 
AccumuloClusterHarness {
       org.apache.accumulo.core.client.mapreduce.AccumuloInputFormat aif =
           new org.apache.accumulo.core.client.mapreduce.AccumuloInputFormat();
 
-      aif.getSplits(job);
+      assertThrows(IOException.class, () -> aif.getSplits(job));
     }
   }
 

Reply via email to