Test log msg

In test sometimes you want to check logs:


@RunWith(MockitoJUnitRunner.class)
public class SomeTesst { 
   private Appender mockAppender;
    @Before    public void setUp() {
        mockAppender = mock(Appender.class);        when(mockAppender.getName()).thenReturn("MOCK");        Logger rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);        rootLogger.addAppender(mockAppender);    }

    @Test    public void validate() {
       

        ArgumentCaptor<Appender> argumentCaptor = ArgumentCaptor.forClass(Appender.class);        verify(mockAppender, times(1)).doAppend(argumentCaptor.capture());
        assertTrue(((LoggingEvent) argumentCaptor.getAllValues().get(0)).getFormattedMessage().contains("Some log msg"));    }

Komentarze