我写了以下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)
你能解释一下问题出在哪里吗?