2015-11-04 13 views

risposta

6

L'ex stile CALLS_REAL_METHODS crea un oggetto non inizializzato; nessun costruttore viene eseguito e nessun campo è impostato. Generalmente questa sintassi non è sicura, poiché le implementazioni reali interagiranno con i campi non inizializzati che potrebbero costituire uno stato non valido o impossibile.

Il secondo stile @Spy consente di chiamare un costruttore di propria scelta, oppure Mockito effettuerà il try to call a no-arg constructor if the field is uninitialized. I campi vengono quindi copiati in una Spia generata (che estende il tipo spiato), consentendo interazioni molto più sicure e più realistiche.


Requisite promemoria: fare collezioni di Java non addirittura finto di fuori di esempi di giocattoli, e non dimenticare di utilizzare doReturn sintassi quando si esegue l'override spie e CALLS_REAL_METHOD prende in giro, altrimenti si chiamerà il metodo vero e proprio all'interno della chiamata when .