检查日志调用次数

时间:2015-09-17 07:08:34

标签: java unit-testing logging log4j

我写了以下UT,我无法理解为什么它一直失败:

        final Appender mockAppender = mock(Appender.class);
        MyClass.log.addAppender(mockAppender);
        final ArgumentCaptor<LoggingEvent> captor = ArgumentCaptor.forClass(LoggingEvent.class);
        Log4jConfigHelper.getInstance().bufferConfiguration();

        MyClass.log.warn("adasd");

        final List<LoggingEvent> allValues = captor.getAllValues();
        verify(mockAppender).doAppend(captor.capture());
        assertThat(allValues.get(0).getMessage().toString(), equalTo("adasd"));

失败追踪:

Wanted but not invoked:
appender.doAppend(<Capturing argument>);
-> at com.bet.blues.be.processor.IORequestProcessorTest_rejectSend.rejectSend_orderNotRejected_overrideRejectUser(IORequestProcessorTest_rejectSend.java:123)

However, there were other interactions with this mock:
-> at org.apache.log4j.helpers.AppenderAttachableImpl.removeAllAppenders(AppenderAttachableImpl.java:141)

你能解释一下问题出在哪里吗?

0 个答案:

没有答案