Ostatnio dotarłem do biblioteki mockito umożliwiającej tworzenie obiektów mock’owych w bardzo prosty sposów, mockowac można zarówno dla samych interfejsów jak i klas ostatecznych.
No to popatrzmy na przykładowy test:
@Test
public void test() throws Exception {
Item item = new Item() {
public String getName() {
return "My name is...";
}
}
}
W tym prostym przypadku niby nei ma różnicy
a przy wykorzystaniu mockito:
@Test
public void test() throws Exception {
Item item = mock(Item.class);
when(item.getName()).thenReturn("Slim shady");
}
No niby nie ma różnicy, ale wyobraźmy sobie, ze interfejs ma 10 metod z których potrzbujemy do naszego przypadku testowego jedynie getName i jakie ono będzie nie ma większego znaczenia, ważne żeby zwracało to co chcemy.
Idzmy krok dalej – w projekcie nad którym obecnie pracuje cała masa rzeczy przechowywana jest w plikach xml, więc powiedzmy że dla każdego przypadku testowego trzeba edytować 3 pliki xml, po utowrzeniu odpowiedniej ilości testcase’ow nikomu nie chce się dodawać kolejnego i przedzierać przez gąszcz plików, z których część już dawno jest zdezaktualizowana.
No przykład jest prosty, ale taki też był zamysł tego wpisu – jako wstęp do analizy konkretnego przypadku i podzielenie sie paroma uwagami.
Leave a Reply