如何使用记录器通过断言打印消息

How to use logger to print messages with assert

我正在尝试在我的存储库中实现一个记录器,但我在使用 Junit 实现记录器时遇到了一些问题。

示例断言:

logger.info("Asserting the response.");
assertThat(response.statusCode())
                    .withFailMessage("The test failed with status code:" + response.statusCode())
                    .isEqualTo(200);

我想用 logger.error() 函数代替 withFailMessage 但我似乎找不到任何方法。

标准断言(即 assertThat())意味着立即失败并带有 AssertionError

如果您想在出现故障时使用自定义逻辑,Soft Assertions together with the callback feature 可能就是您要找的。

你的例子会变成这样:

SoftAssertions softly = new SoftAssertions();
softly.setAfterAssertionErrorCollected(error -> logger.error("Assertion failed: {}", error));

softly.assertThat(response.statusCode())
      .isEqualTo(200);