Mam klasę A z 2 funkcjami: funkcja a(), która zwraca liczbę losową. funkcja b(), która wywołuje funkcję a() i zwraca zwróconą wartość.Mockito kiedy(). ThenReturn() nie działa poprawnie
W teście pisałem tak:
A test = Mockito.mock(A.class)
Mockito.when(test.a()).thenReturn(35)
assertEquals(35,test.a())
assertEquals(35,test.b())
test nie powiedzie się na drugim assert. Czy ktoś wie, dlaczego?
Żeby było jasne - to nie jest mój prawdziwy kod, ale prosty kod wyjaśnić mój problem
@SajanChandran Dziękujemy! Oba rozwiązania działają!2 pytania: 1) Dla pierwszego rozwiązania, będę musiał zrobić toCallRealMethod() dla każdej funkcji w klasie? dla każdej funkcji z wywołaniem do()? 2) W przypadku drugiego rozwiązania, jaka jest różnica między "mockiem" a "szpiegiem"? – tamird14
tak, jeśli chcesz użyć jakiejkolwiek prawdziwej metody, musisz zadzwonić do 'thenCallRealMethod' i zobaczyć to na http://stackoverflow.com/questions/28295625/mockito-spy-vs-mock –
To zależy od Ciebie, aby zdecydować w zasadzie, wyśmiać lub wywołać prawdziwą metodę –