Adding additional Mockito warnings to your tests (JUnit) (Experimental)
If you would like Mockito to append some additional warning messages to the console, which would help you when your test fails, then this recipe is perfect for you. It's very much related to the previous one so, in order to understand the background, please refer to the introductory part of the previous recipe.
Note
Remember that this feature is experimental and the API, name, or anything related to it may change in time. What's more, the whole feature may get deleted in time!
How to do it...
If you want to have more information presented in your error message, you have to perform the following steps:
- Annotate your JUnit test with
@RunWith(ConsoleSpammingMockitoJUnitRunner.class)
. - Define your mocks and perform stubbing inside the test method (unfortunately, you can't use annotations or initialize fields outside test methods).
What happens then is that additional exception messages gets printed on the console after the exception that is thrown:
This stubbing was never used -> at ....MeanTaxFactorCalculatorTest.should_calculate_mean_tax_factor(MeanTaxFactorCalculatorTest.java:25)
How it works...
When the test is run, ConsoleSpammingMockitoJUnitRunner
appends a listener that finds all the stubs through WarningsCollector
, including the unused stubs for given mocks. When all of the warnings get collected, the ConsoleMockitoLogger
class prints them to the console after the test has failed.