When the code under test in a unit test throws an exception, the test itself fails. Therefore, there is no need to surround the tested code with a
try
-catch
structure to detect failure. Instead, you can simply move the exception type to the method signature.
This rule raises an issue when there is a fail assertion inside a catch
block.
@Test public void testMethod() { try { // Some code } catch (MyException e) { Assert.fail(e.getMessage()); // Noncompliant } }
@Test public void testMethod() throws MyException { // Some code }