Wpis z mikrobloga

Gdzie widzisz problem? Do zmiennej przypisujesz wartosci, nastepnie odpalasz sobie taki setter i sprawdzasz jakis assert, exception czy cokolwiek chcesz.
  • Odpowiedz
Jezeli masz setter to masz i getter, a setter masz public albo protected. Wiec wyjatki i wartosci mozesz przetestowac.
  • Odpowiedz
@ghost1511: Jak nie masz gettera to testuj metody, które używają właściwości (settera testujesz pośrednio). Generalnie taki setter z walidacją/parsowaniem to side effect i powinno się tego unikać.
  • Odpowiedz
@fmfd: Jeśli chodzi o używanie wyjątków do flow controll to obecnie nie mam na ten temat klarownej opinii. Rozpocząłem ze stanowczym "nie", ale... pojawiły się wyjątki;)
  • Odpowiedz
a kto ma sie bronic przed ustawieniem zlej wartosci w obiekcie? Sam obiekt czy cos zewnetrznego dla niego? :)


@fmfd: Generalnie coś zewnętrznego - developer:) Jeśli nie ma na to wpływu, bo np. publikuje moduł (używany przez kogoś innego) to rzuca wyjątkami, bo nieodpowiednie dane rozwalą program w głębszych warstwach i do własnego błędu trzeba by dochodzić przez debugowanie modułu.

Walidacja to nie wyjątek imo - to część funkcji.

Linkami
  • Odpowiedz
@MQs: jak publikujesz biblioteke to raczej nie masz wplywu na to czy ktos rozsadny bedzie z niej korzystac :P

Dlatego exception jest imo na miejscu. Zreszta to powszechna praktyka przy korzystaniu z guavy: Preconditions.check*()
  • Odpowiedz
jak publikujesz biblioteke to raczej nie masz wplywu na to czy ktos rozsadny bedzie z niej korzystac :P


@fmfd: Przecież to napisałem.
  • Odpowiedz