| Prefer using the format | |
| ```java | |
| when(mock.mockedMethod(...)).thenReturn(returnValue); | |
| ``` | |
| to initialise mocks, rather than, | |
| ```java | |
| doReturn(returnValue).when(mock).mockedMethod(...); | |
| ``` | |
| Mockito recommends the `when`/`thenReturn` syntax as it is both more readable | |
| and provides type-safety: the return type of the stubbed method is checked | |
| against the stubbed value at compile time. | |
| There are certain situations where `doReturn` is required: | |
| * Overriding previous stubbing where the method will *throw*, as `when` makes | |
| an actual method call. | |
| * Overriding a `spy` where the method call where calling the spied method | |
| brings undesired side-effects. |