概要
今回は単体テスト時にログの出力内容を検証をすることになったため、ログの出力内容の検証の方法で調べたことをサンプルと合わせてあげたいと思います。
出力されたログの検証方法出力されたログを検証する際、検証前に以下のサンプルのように値を設定する。
/**
* Appenderのモック.
*/
private Appender<ILoggingEvent> mockAppender;
/**
* キャプチャー.
*/
@Captor
private ArgumentCaptor<ILoggingEvent> captorLoggingEvent;
/**
* 事前設定
*/
@Before
public void setUp() {
mockAppender = mock(Appender.class);
Logger logger = (Logger) LoggerFactory.getLogger(XXX.class);<!-- 1 -->
logger.addAppender(mockAppender);<!-- 2 -->
captorLoggingEvent = ArgumentCaptor.forClass(ILoggingEvent.class);
}
1.getLogger
の引数にログを出力するテスト対象のクラスを指定する。
2.Logger
へmockを追加する。
テスト対象の試験を実施後出力されたログの検証するため以下のように検証を行う。
verify(mockAppender, times(1)).doAppend(captorLoggingEvent.capture());<!-- 1 -->
String logMessage = captorLoggingEvent.getValue().toString();<!-- 2 -->
assertThat(logMessage).isEqualTo("output message");<!-- 3 -->
1.verifyメソッドでログが何回出力されたかを検証することができる。またキャプチャーで引数をキャプチャする。
2.(1)でキャプチャした引数をgetValue
でキャプチャーから取り出す。
3.(2)でキャプチャーから取り出したログの出力内容を検証する。
- 閲覧数 11830
コメントを追加