Źle dobrałeś przykład dlatego nie rozumiesz do czego służy mockito. Jego zadaniem jest tworzenie "zaślepek" klas z których korzysta testowana klasa.
Przykładowo:
class PointService {
private PointDao dao;
public PointService(PointDao dao) {
this.dao = dao;
}
public Point createNewPoint(double point){
return dao.save(new Point(point));
}
}
interface PointDao{
Point save(Point point);
}
class Point{
public Point(double point) {
}
}
Chcemy przetestować nasz PointService
, który korzysta z PointDao
. W tym celu tworzymy mock tego dao:
PointService sut;
PointDao dao ;
@Before
public void setup(){
dao = mock(PointDao.class);
sut = new PointService(dao);
}
// i dalej w teście
@Test
public void shouldCreateNewPoint_callDao(){
when(dao.save(anyObject())).thenAnswer(a-> (Point)(a.getArguments()[0])); // zwraca argument wywołania
sut.createNewPoint(2.0);
verify(dao).save(anyObject());
}
Mockujesz kod dao tak by wywołanie metody save
zwracało argument przekazany do niej (prosty przypadek) albo jakiś z góry wiadomy wynik.
Inny przykład (już sam test). Chcesz sprawdzić czy w przypadku gdy zależność wyrzuci błąd to zwrócimy odpowiedni status
when(service.call(argument)).thenThrow(new ServiceException());
// when
Status err = sut.makeMagicThatCallService(argument);
// then
assertThat(err).isNok(); // zakładam, że tu masz własny assert napisany