Come abilitare i messaggi di debug Mockito? In particolare, mi piacerebbe stampare i dettagli dei metodi testati con when()
e ogni interazione con questi metodi.Come abilitare i messaggi di debug Mockito?
risposta
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,
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.
Mi piace la tua risposta migliore - fornisce maggiori dettagli e il debugger mi ha davvero aiutato. – smirnoff
È possibile impostare verboseLogging con i campi annotati @Mock? –
@DanielBrotherston no, ma è possibile inizializzare il campo con un normale 'mock (type, withSettings(). VerboseLogging())'. Verrà raccolto da 'InjectMocks' – Brice