| Ignoring an exception and calling `fail()` is unnecessary, since an uncaught | |
| exception will already cause a test to fail. It also makes the test output less | |
| useful, since the exception's message and stack trace is lost. | |
| Do this: | |
| ```java | |
| @Test | |
| public void testFoo() throws Exception { | |
| int x = foos(); // the test fails if this throws | |
| assertThat(x).isEqualTo(42); | |
| } | |
| ``` | |
| or this: | |
| ```java | |
| @Test | |
| public void testFoo() throws Exception { | |
| int x; | |
| try { | |
| x = foos(); | |
| } catch (Exception e) { | |
| throw new AssertionError("the test failed", e); // wraps the exception with additional context | |
| } | |
| assertThat(x).isEqualTo(42); | |
| } | |
| ``` | |
| Not this: | |
| ```java | |
| @Test | |
| public void testFoo() { | |
| int x; | |
| try { | |
| x = foos(); | |
| } catch (Exception e) { | |
| fail("the test failed"); // the exception message and stack trace is lost | |
| } | |
| assertThat(x).isEqualTo(42); | |
| } | |
| ``` |