Wpis z mikrobloga

dużo interface'ów - stub'y i fake implementacje


@KwasowyProktolog10kJava: i potem #!$%@? się 6h przy 3-godzinnym tasku nad fejk implementacją do unit testów, które sprawdzają tylko jedną klaskę.

Unity niech #!$%@?ą mocki ile wlezie bo czas to pieniądz, ale po prostu lepiej zrobić dużo testów integracyjnych, które postawią jakąś bazkę embedded czy test-container.

Największy problem z fejk implementacjami do testów jest taki, że pracujemy w Scrumie, Agile. Wymagania biznesowe zmieniają się co
  • 0
@nad__czlowiek: moim zdaniem rozwiązaniem na to jest BDD. Niech w opisach tasków w jirze będą zdefiniowane scenariusze. Staje się to od razu dokumentacją i przepisujesz to na scenariusz testowy. Następnie do scenariuszu dopisujesz kod.

Taki scenariusz ma mieć wartość biznesową w stylu "when user adds product to basket then total value of the basket is upgraded". I ma to być test end to end. Wchodzi coś do endpointa i coś wychodzi
@aczutuse: no ale to widzisz, w takim przypadku lepiej postawić jakieś in-memory H2 które będzie udawać produkcyjnego Postgresa i postawić kontekst springa, wołamy endpoint i sprawdzamy stan bazy.

To wyjdzie z tego integracja a nie unit test
@nad__czlowiek: unit to pojęcie względne. Purysta mógł by powiedzieć, że twój test nie jest unit testem, bo zależy od standardowej klasy String a nie jakiejś abstrakcji.

Najlepiej mieć to w p*****e i pisać testy bez myślenia o tym podziale
i potem #!$%@? się 6h przy 3-godzinnym tasku nad fejk implementacją do unit testów, które sprawdzają tylko jedną klaskę.


@nad__czlowiek: pisanie fejków nigdy nie trwa 6h, plus jak już raz się go napisze to reużywasz go przy innych zadaniach. Długoterminowo sprawdzają się dużo lepiej niż mockowanie. Plus można ich używać poza testem, np. w trakcie lokalnego developmentu jeżeli nie chcesz uderzać do rzeczywistego systemu zewnętrznego.

Unity niech #!$%@?ą mocki ile wlezie