Assertion methods are throwing a "java.lang.AssertionError
". If this call is done within the try block of a try-catch cathing a
similar error, you should make sure to test some properties of the exception. Otherwise, the assertion will never fail.
@Test public void should_throw_assertion_error() { try { throwAssertionError(); Assert.fail("Expected an AssertionError!"); // Noncompliant, the AssertionError will be caught and the test will never fail. } catch (AssertionError e) {} } private void throwAssertionError() { throw new AssertionError("My assertion error"); }
assertThrows(AssertionError.class, () -> throwAssertionError());
try { throwAssertionError(); Assert.fail("Expected an AssertionError!"); // Compliant, we made sure to test that the correct error is raised } catch (AssertionError e) { Assert.assertThat(e.getMessage(), is("My assertion error")); }