Ho una classe che ha 2 metodi. Voglio prendere in giro la classe e poi prendere in giro il primo metodo, ma non il secondo.Mockito- call metodo reale
ad es.
class C {
void m1() { ...}
boolean m2() { ... return flag;}
}
unità codice di prova:
C cMock = Mockito.mock(C.class);
Mockito.doNothing().when(cMock).m1();
Mockito.when(cMock.m2()).thenCallRealMethod();
La cosa strana è che m2 non viene chiamato.
mi manca qualcosa qui?
è la tua attuale classe C non-finale? Inoltre, in alternativa, puoi creare una Spia invece di una Mock, e quindi devi solo fare 'doNothing()' per m1. –
Puoi darci l'intero codice di prova dell'unità? Perché qui, è normale se non viene chiamato il m2. Stai solo dichiarando il comportamento dei mock. Ma nessun vero metodo viene chiamato. – LaurentG
@Kevin. si è non-finale. Spia ha funzionato! –