DevEnv
wczoraj, 13:28Dev:Cast – Unit Tests – Dobre praktyki
Testy jednostkowe to temat, który nie raz poruszaliśmy podczas naszego podcastu. Wspominaliśmy o ich wartości, głównych zasadach ale także zachwalaliśmy technikę Test-driven development. Z naszych rozmów jednoznacznie wynika, że praca bez Unit Tests jest dla nas ciężka i tak na prawdę zwiększa ilość pracy…
Tym razem skupiliśmy się na definicji kilku dobrych praktyk wspomagających tworzenie testów jednostkowych. Takich testów, które dobrze weryfikują implementacje, zapewniają jakość oraz łatwo jest je utrzymywać.
#devenv #devcast #programowanie #dobrepraktyki #unittests #technicalblog
Aventus
Osobiście jestem zdania że testy jednostkowe należy ograniczyć do minimum, tam gdzie naprawdę maja one sens. Np. mam jakąś klasę enkapsulujacą operacje na czasie, wtedy chce ja oddzielnie pokryć testami jednostkowymi aby sprawdzić każdy przypadek użycia. W każdym innym razie zdaje się na testowanie konkretnego scenariusza w obrębie danej aplikacji/serwisu. Podmieniam zewnętrzne zależności (inne serwisy, bazy danych itp.) natomiast (zakładając aplikację webową) w teście stawiam wirtualny host, wykonuje jakiś request i sprawdzam wynik. W ten sposób testowany jest cały pipeline danej operacji. Osiągam te same profity co przy użyciu testów jednostkowych, ale bez niepotrzebnego rozdrabniania się i kilku/kilkunastu testów wyrwanych z kontekstu, w miejsce jednego który właśnie tenże kontekst testuje.
lubie_programowac
"Dzwony dzwonią ale nie wiadomo w którym kościele" - tutaj prezentujecie inne podejście https://www.spreaker.com/user/devenv/devcast-06 ~4:25 "Mieliśmy dużą ilość testów na różnych poziomach którym kompletnie nie był w stanie zaufać. Nie były deterministyczne. [...] Spotykasz dużą ilość testów, sam brak nie musi być rzeczą negatywną bo ich nadmierna ilość albo ich wadliwa jakość też może nie być dobra dokumentacją projektu. " Pragmatyzm ponad dogmatyzmem - tzn KPI / cel aby osiągnąć 100% test coverage nie jest dobrym. Dobry programista pisze dobre testy, tworzy dobrą architekturą, tworzy dobry design.