如何在 JUnit 测试方法中获取 LogFactory DEBUG 消息,以对其执行断言?

问题描述 投票:0回答:1

我有一个需要测试的方法流程,并且我可以证明该流程经过的唯一方法是记录一条 DEBUG 消息。

我似乎找不到获取 DEBUG 消息的方法,因为它没有打印在控制台中。

有没有办法获取 DEBUG 消息(如 CapturedOutput)并对其执行断言?

java unit-testing apache-commons-logging logfactory
1个回答
0
投票

您可以配置ListAppender:


private ListAppender<ILoggingEvent> logWatcher;

  @BeforeEach
  void setup() {
    logWatcher = new ListAppender<>();
    logWatcher.start();
    ((Logger) LoggerFactory.getLogger(YorClass.class)).addAppender(logWatcher);
  }

然后您可以从列表中读取日志消息

assertThat(logWatcher.list).hasSize(1);
    assertThat(logWatcher.list.get(0).getFormattedMessage())
        .isEqualTo(...);
  

© www.soinside.com 2019 - 2024. All rights reserved.