我有一个需要测试的方法流程,并且我可以证明该流程经过的唯一方法是记录一条 DEBUG 消息。
我似乎找不到获取 DEBUG 消息的方法,因为它没有打印在控制台中。
有没有办法获取 DEBUG 消息(如 CapturedOutput)并对其执行断言?
您可以配置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(...);