2013-06-06 9 views
10

So che è possibile verificare i tempi in cui è stato chiamato il metodo di un oggetto spiato. Puoi verificare il risultato della chiamata al metodo?Mockito verifica il ritorno di un metodo oggetto spiato

Qualcosa come il seguente?

verify(spiedObject, didReturn(true)).doSomething(); 
+3

@BrianRoach questa domanda riguarda il valore RESTITUITO da un oggetto spiato, non il valore PASSATO ad esso –

risposta

13

per verificare il numero di volte in cui è stato invocato, utilizzare verify(spiedObject, times(x)).doSomething().

NON si deve verificare il valore restituito dall'oggetto spiato. Non è l'oggetto in esame quindi perché verificare ciò che restituisce. Verifica invece il comportamento dell'oggetto in prova in risposta al valore restituito dalla spia.

Inoltre, se non si conosce quale valore verrà restituito dall'oggetto spiato, sarebbe meglio utilizzare una simulazione anziché una spia.

+1

, va bene grazie. Questo è quello che sto facendo, ero solo curioso. – David

+1

Ci sono volte in cui si desidera verificare il valore restituito, ad esempio per verificare il risultato di un calcolo. Oppure, ad esempio, si sta spiando, ad esempio, su una classe di sensori e si desidera verificare che il sensore restituisca uno stato di "avviso" quando riceve il tipo di input che causa l'avviso. –

+1

@ luis.espinal la descrizione precedente sembra testare l'oggetto spiato (verifica dell'avviso restituito sull'input di avviso). Ciò dovrebbe essere eseguito in un test per l'oggetto spiato non in un test per un oggetto che utilizza l'oggetto spiato. Vorrei anche suggerire che se c'è un comportamento complicato dietro restituisce un risultato di avviso, è necessario utilizzare un metodo stub. –

Problemi correlati