
errorprone.bugpattern.AssertionFailureIgnored.md Maven / Gradle / Ivy
The newest version!
JUnit's `fail()` and `assert*` methods throw an `AssertionError`, so using the
try/fail/catch pattern to test for `AssertionError` (or any of its super-types)
is incorrect. The following example will never fail:
```java
try {
doSomething();
fail("expected doSomething to throw AssertionError");
} catch (AssertionError expected) {
// expected exception
}
```
To avoid this issue, prefer JUnit's `assertThrows()` API:
```java
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows;
@Test
public void testFailsWithAssertionError() {
AssertionError thrown = assertThrows(
AssertionError.class,
() -> {
doSomething();
});
assertThat(thrown).hasMessageThat().contains("something went terribly wrong");
}
```
© 2015 - 2025 Weber Informatics LLC | Privacy Policy