TESTY - WAŻNY KOD!


Testy End To End (E2E, funkcjonalne) – testy sprawdzające całe funcjonalności biznesowe, startują z poziomu interfejsu graficznego, przeprowadza je tester manualny lub robot.


Testy integracyjne – testy sprawdzające działanie połączonych poszczególnych modułów, np. testowanie zachowania programu podczas łączenia się z bazą danych lub zewnętrznymi serwisami.   


Testy jednostkowe – testy weryfikujące poprawność działania pojedynczych elementów programu. Sprawdzają tylko logikę biznesową bez łączenia się z zewnętrznymi komponentami. Do ich pisania wykorzystujemy popularne frameworki, takie jak: JUnit5 czy mockito 2. Pierwszy z nich służy do uruchamiania testów i tworzenia assercji, drugi zaś wykorzystywany jest głównie do tworzenia MOCKÓW – specjalnych obiektów, które mają symulować zachowanie prawdziwych obiektów.

Typy obiektów pomocniczych stosowanych w testach jednostkowych

Stub

Jest to obiekt zawierajacy przykładową implementajcę kodu, który chcemy przetestować. Pozwala na określenie zachowania tego obiektu. Jest to ręczna implementacja danych zależności, która może być wystarczająca w niewielkich projektach.

Mock

Jest to obiekt tak samo jak stub, symulujący zachowanie prawdziwego obiektu, jednak zapewnia możliwość weryfikacji jego zachowania oraz daje znacznie więcej funkcjonalności. Jest tworzony przy wykorzystaniu biblioteki mockito.

Spy

Jest otoczką na prawdziwy obiekt (wrapper), którego działanie może śledzić ale bez zmiany jego zachowania. Jest to obiekt hybrydowy, ponieważ może być częściowo mockiem, a częsciwo prawdziwym obiektem.

TDD - Test Driven Development

TDD jest podejściem programistycznym, polegającym na napisaniu najpierw testu jednostkwego, a w drugiej kolejności zaimplementowaniu do niego funkcjonaloności. Powyższy graf przedstawia jak poprawnie powinnien wyglądać jeden cykl tej metodyki: RED – piszemy test jednostkowy, który powinien zakończyć się niepowodzeniem, GREEN – piszemy kod (jak najmniej!), żeby test napisany we wcześniejszym kroku zakończył się powodzeniem, REFACTOR – poprawiamy napisany kod (o ile jest to potrzebne). 

Sandra
Chemik & Programista