Ho una classe A con 2 funzioni: function a() che restituisce un numero casuale. funzione b() che chiama a() e restituisce il valore restituito.Mockito quando(). ThenReturn() non funziona correttamente
In un test ho scritto questo:
A test = Mockito.mock(A.class)
Mockito.when(test.a()).thenReturn(35)
assertEquals(35,test.a())
assertEquals(35,test.b())
Il test fallisce alla seconda asserzione. Qualcuno sa perché?
Per essere chiari - questo non è il mio vero codice, ma un semplice codice per spiegare il mio problema
@SajanChandran Grazie !! Entrambe le soluzioni funzionano!2 domande: 1) Per la prima soluzione, dovrò fare thenCallRealMethod() per ogni funzione della classe? per ogni funzione con una chiamata a a()? 2) Per la seconda soluzione, qual è la differenza tra "mock" e "spy"? – tamird14
sì, se si desidera utilizzare qualsiasi metodo vero e proprio si deve chiamare 'thenCallRealMethod' e vedere questo per http://stackoverflow.com/questions/28295625/mockito-spy-vs-mock –
Sta a voi decidere in fondo, deridere o invocare il metodo reale –