ほぼログ専門

Mockito + slf4j

テストクラスに以下のモック変数を用意する

@Mock
Appender mockAppender;

@Captor
private ArgumentCaptor<LoggingEvent> captorLoggingEvent;

テストメソッドはこんな感じ

ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
logger.addAppender(mockAppender);

// ロガー実行

verify(mockAppender).doAppend(captorLoggingEvent.capture());
final LoggingEvent loggingEvent = captorLoggingEvent.getValue();
assertThat(loggingEvent.getLevel(), is(Level.WARN));
assertThat(loggingEvent.getFormattedMessage(), is("assertion text"));

参考:Unit testing logback based logging statements.

このログへのコメント

コメントはありません