2012-08-03 19 views

risposta

28

Mockito 1.9.0 ha introdotto ascoltatori e ora impacchetta un logger verbose:

Quindi, in pratica, se si desidera i registri semplici e stupidi, basta fare il seguente:

List mockWithLogger = mock(List.class, withSettings().verboseLogging()); 

Vedi http://docs.mockito.googlecode.com/hg/latest/org/mockito/MockSettings.html#verboseLogging() per maggiori informazioni

Cheers,

+1

È possibile impostare verboseLogging con i campi annotati @Mock? –

+3

@DanielBrotherston no, ma è possibile inizializzare il campo con un normale 'mock (type, withSettings(). VerboseLogging())'. Verrà raccolto da 'InjectMocks' – Brice

7

Brice risposta è la strada da percorrere, ma un'altra opzione è:

0.123.
new org.mockito.internal.debugging.MockitoDebuggerImpl().printInvocations(mockedObject); 

Che stampa solo le interazioni avvenute prima di quel punto all'opzione data. Non è abbastanza robusto, ma fa il trucco e potrebbe essere utile per alcuni casi (ad esempio quando si utilizza annotazioni finte)

Per esempio, questo dovrebbe funzionare in base alle MockitoSettings

spiedObject = mock(ToMock.class, withSettings().spiedInstance(toMockInstance).verboseLogging()) 

se in 1.9.5 non lo fa sembra spiare qualsiasi cosa, lo prende in giro.

+0

Mi piace la tua risposta migliore - fornisce maggiori dettagli e il debugger mi ha davvero aiutato. – smirnoff

Problemi correlati