2009-07-19 9 views

risposta

2

C'è un MemoryAppender, ma non fa parte della libreria standard di log4j.

Si potrebbe facilmente scrivere il proprio, ma se li si utilizza solo per i test di unità, probabilmente prenderei in giro il registratore di cassa e asserire che non vengono fatte chiamate ad esso. Sostituisci il metodo getLogger() nella classe di destinazione o imposta il Logger fittizio direttamente sul tipo.

Utilizzando JMock (ad esempio a memoria, mi dispiace per eventuali errori):

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

Non credo ci sia. Puoi scrivere il tuo facilmente, però. Ecco uno suitable tutorial.

+0

ho fatto già, grazie. – ripper234

Problemi correlati