No wlasnie, jak to jest.
Gdy pitrzebuje przetestowac kalse, ktora zawiera inna klase - do ktorej nie mam bezposredniego dostepu - to nia mockuje.
ale jaki to ma sens ? np:
Point p = mock(Point.class); //ok mockuje sobie kalse Point, bo nie mam do niej dostepu (o to chodzi w mockowaniu, co nie ?)
when(p.getX()).thenReturn(2.0); //kiedy wywolam getX na mockowanym obiekcie ma zwrocic 2
when(p.getY()).thenReturn(3.0);
doCallRealMethod().when(p).setLocation(anyDouble(), anyDouble()); // ma wywolac callRealMethod() kiedy setlocation z p dostanie 2 double
when(p.getLocation()).thenCallRealMethod(); //kiedy wywolamy na p get location wywola sie metoda callRealMethod().
p.setLocation(1.0, 5.0); //wywola sie tez callRealMethod()
System.out.println("P(" + p.getX() + "," + p.getY() + "), LOCATION: " + p.getLocation());
zwroci 2 i 3 getLocation + wyuwola callRealMethod()
verify(p, never()).distance(any(Point2D.Double.class));
verify(p, times(1)).getY(); //weryfikacja ok, gdy raz wywolano getY,
verify(p, times(1)).getX();
jaki sens tych weryfikacji, gdy mockuje sobie obiekt, okreslam jego zachowanie, a na koniec je weryfikuje,
po co mam weryfikoawc zachowanie, ktore dokladnie wczesniej okreslilem ?