2009-07-19 8 views

Respuesta

2

Hay un MemoryAppender, pero no es parte de la biblioteca log4j estándar.

Podrías escribir fácilmente la tuya, pero si solo las estás usando para pruebas unitarias, probablemente me burle del registrador y afirme que no se hacen llamadas. Reemplace el método getLogger() en la clase objetivo o configure el Logger falso directamente en el tipo.

Usando JMock (ejemplo de la memoria, lo siento por los errores):

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

No creo que exista. Sin embargo, puedes escribir el tuyo fácilmente. Aquí hay un suitable tutorial.

+0

Ya lo hice, gracias. – ripper234

Cuestiones relacionadas