2009-07-19 4 views
6

로깅 이벤트 목록을 저장하는 log4j appender가 있습니까 (단위 테스트에서 오류 로그가 기록되지 않았는지 확인하는 데 사용됩니까?)?log4j 메모리 'list appender'

답변

2

MemoryAppender이 있지만 표준 log4j 라이브러리에는 포함되어 있지 않습니다.

당신은 쉽게 당신 자신의 것을 쓸 수 있습니다. 그러나 만약 당신이 유닛 테스트를 위해서만 사용한다면 나는 아마도 Logger를 조롱하고 그것에 대한 호출이 없다고 주장 할 것입니다. 대상 클래스에서 getLogger() 메서드를 재정의하거나 해당 유형에서 모의 ​​로거를 직접 설정합니다. 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

나는 존재하지 않는다고 생각합니다. 그래도 쉽게 직접 작성할 수 있습니다. 다음은 suitable tutorial입니다.

+0

가 이미했던, 감사합니다. – ripper234

관련 문제