Wpis z mikrobloga

Mam klasę, która implementuje interface i rzuca wyjątkiem w przypadku problemu z połączeniem ze źródłem danych. Piszę do tego test: lepiej mock czy lepiej prosta klasa implementująca ten interface i rzucająca wyjątkiem? I dlaczego?

#programowanie
  • 7
@masterix: Kwestia preferencji - ja wolę ręcznie pisać. Zalety widzę takie, że mogę wielokrotnie używać tej samej klasy w różnych kontekstach, zmieniać zachowanie w jednym miejscu (i wywalać wszystkie testy, które się powinny wtedy wywalić), rozszerzać potrzebną funkcjonalność (dummy-fake-stub-mock), a kod testów jest czytelniejszy według mnie. Chociaż definiowanie można przenieść do metody i opisać nazwą, to nadal łatwiej mi czytać klasę (bez szczególnej funkcjonalności) niż jej meta-definicję. Wadą może być dla
@MQs: No mi się ręczne pisanie też wydaje czytelniejsze, ale chciałem dopytać czy są może jakieś wytyczne w tej kwestii albo jakieś założenia, które nakierowują na odpowiedni wybór.
@masterix: Jedyną wytyczną powinna być konwencja ustalona w zespole. Poza tym w ogólnym kontekście nic więcej nie ma. W szczególnych przypadkach (język/framework) może istnieje (chociaż nie znam) jakiś "industry standard" zakorzeniony na tyle, że nikt się nie spodziewa ręcznie pisanych test doubles.