'How to use logger to print messages with assert
I am trying to implement a logger in my repo and I am having some issues with implementing logger with Junit.
Sample assertion:
logger.info("Asserting the response.");
assertThat(response.statusCode())
.withFailMessage("The test failed with status code:" + response.statusCode())
.isEqualTo(200);
I want to use logger.error() function in place of withFailMessage but I can't seem to find any method.
Solution 1:[1]
Standard assertions (i.e., assertThat()) are meant to fail immediately with an AssertionError.
If you would like to have custom logic in case of failures, Soft Assertions together with the callback feature might be what you are looking for.
Your example would become something like:
SoftAssertions softly = new SoftAssertions();
softly.setAfterAssertionErrorCollected(error -> logger.error("Assertion failed: {}", error));
softly.assertThat(response.statusCode())
.isEqualTo(200);
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Stefano Cordio |
