В памяти 'список приложений' для log4j - PullRequest
7 голосов
/ 19 июля 2009

Существует ли приложение для log4j, в котором хранится только список событий регистрации (для использования в модульных тестах, чтобы убедиться, что журналы ошибок не были записаны)?

Ответы [ 2 ]

3 голосов
/ 19 июля 2009

Существует MemoryAppender , но он не является частью стандартной библиотеки log4j.

Вы можете легко написать свой собственный, но если вы используете их только для модульных тестов, я, вероятно, высмеиваю Logger и утверждаю, что к нему не обращаются. Переопределите метод getLogger () в целевом классе или установите фиктивный Logger непосредственно на тип.

Использование Jmock (пример из памяти, извините за любые ошибки):

public void testDoFoo() {
    Mockery mockery = new Mockery();
    Logger mockLogger = mockery.mock(Logger.class);

    Foo foo = new Foo();

    foo.setLogger(mockLogger);

    mockery.checking(new Expectations() {
        {
            never(mockLogger).debug(with(any(String.class));
        }
    };

    ...
    //do the actual test.

    //assert the mock type has never been called.
    mockery.assertIsSatisfied();
}
1 голос
/ 19 июля 2009

Я не верю, что есть. Вы можете написать свой легко, хотя. Вот подходящий учебник .

...