Szkolenie z testowania w Springu
Poziom
ZaawansowanyCzas
24h / 3 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie z testowania w Springu
Praktyczne szkolenie poświęcone testowaniu aplikacji tworzonych w Spring Boot. Uczestnicy poznają różne rodzaje testów oraz nauczą się dobierać odpowiednią strategię testowania do problemu technicznego i biznesowego. Szkolenie obejmuje testy jednostkowe, integracyjne, slice tests, testowanie baz danych oraz integracji z zewnętrznymi serwisami. Uczestnicy poznają narzędzia takie jak JUnit, Mockito, AssertJ, TestContainers i WireMock oraz dobre praktyki pozwalające tworzyć stabilne i łatwe w utrzymaniu testy. Ważną częścią szkolenia jest również wpływ architektury aplikacji na jej testowalność oraz najczęstsze błędy i antywzorce w testowaniu. Program obejmuje także wykorzystanie AI do generowania i refaktoryzacji testów oraz sposoby weryfikowania jakości kodu tworzonego przez AI.
Dla programistów Java pracujących z frameworkiem Spring Boot
Dla osób, które chcą uporządkować i rozwinąć wiedzę z zakresu testowania aplikacji Spring Boot
Dla programistów, którzy chcą lepiej dobierać rodzaje testów do konkretnych problemów i potrzeb projektu
Dla osób pracujących z bazami danych i integracjami z zewnętrznymi serwisami, które chcą skuteczniej testować te elementy aplikacji
Dla programistów zainteresowanych wykorzystaniem AI do generowania, analizy i refaktoryzacji testów
Czego nauczysz się na szkoleniu?
- Dobierać odpowiednie rodzaje testów w Spring Boot, od testów jednostkowych po integracyjne, slice tests i testy zewnętrznych serwisów
- Tworzyć czytelne, stabilne i łatwe w utrzymaniu testy z wykorzystaniem JUnit, Mockito, AssertJ, TestContainers i WireMock
- Testować integrację z bazami danych i zewnętrznymi serwisami oraz prawidłowo zarządzać środowiskiem i danymi testowymi
- Projektować kod i architekturę aplikacji w sposób zwiększający jej testowalność oraz unikać najczęstszych błędów i antywzorców w testowaniu
- Wykorzystywać AI do generowania i refaktoryzacji testów, a także oceniać jakość i poprawność testów tworzonych przez AI
Program szkolenia
Moduł 1. Wprowadzenie do testowania w Springu
• Testy jako mechanizm ograniczania ryzyka zmian
• Typy testów i ich odpowiedzialności
• Koszt utrzymania testów vs wartość biznesowa
• Kiedy testy pomagają, a kiedy stają się problemem
Moduł 2. Fundamenty testów jednostkowych
• Czym jest JUnit / Mockito / AssertJ
• Organizacja i struktura testów
• Mockowanie zależności
• Testy zorientowane na implementację vs zachowanie
• Czytelność i utrzymywalność testów
Moduł 3. Testy integracyjne w Spring Boot
• Wsparcie Springa dla testów integracyjnych
• @SpringBootTest i zarządzanie kontekstem aplikacji
• Konfiguracja środowiska testowego
• Mockowanie beanów
• Koszt i ograniczenia testów integracyjnych
Moduł 4. Slice Tests
• Dlaczego nie zawsze warto uruchamiać cały kontekst aplikacji
• Testowanie wycinków aplikacji
• Dobór rodzaju testu do problemu biznesowego i technicznego
Moduł 5. Testowanie baz danych
• Strategie testowania warstwy persistence
• Bazy danych in-memory – zalety i ograniczenia
• TestContainers w praktyce
• Testowanie kodu transakcyjnego
• Zarządzanie danymi testowymi
Moduł 6. Testowanie zewnętrznych serwisów
• Problemy związane z testowaniem integracji
• Mockowanie komunikacji zewnętrznej
• WireMock w praktyce
• Symulowanie błędów i timeoutów
• Wprowadzenie do Consumer-Driven Contract Tests
Moduł 7. Dobre praktyki testowania
• Jak pisać testy wspierające refaktoryzację
• Testy jako mechanizm bezpieczeństwa
• Balans między szybkością, jakością i kosztem testów
• Organizacja testów w większych projektach
• Heurystyki pomagające utrzymać testy w długim czasie
Moduł 8. Najczęstsze błędy i antywzorce
• Nadmierne mockowanie
• Flaky tests i niestabilne testy
• Testowanie implementacji zamiast zachowania
• Zbyt wolne testy
• Duplikacja logiki testowej
• Problemy wynikające z niewłaściwej architektury
Moduł 9. Testowanie a architektura aplikacji
• Wpływ architektury na testowalność systemu
• Low Coupling i High Cohesion w praktyce
• Ports & Adapters / Hexagonal Architecture a testy
• Separacja odpowiedzialności i wpływ na testy
• Jak projektować kod łatwy do testowania
Moduł 10. Testowanie a AI
• Wykorzystanie AI do generowania testów
• Ryzyka związane z kodem generowanym przez AI
• Jak walidować testy tworzone przez AI
• AI jako wsparcie refaktoryzacji testów
• Testy jako mechanizm kontroli jakości kodu generowanego automatycznie
Moduł 11. Podsumowanie
• Najważniejsze zasady skutecznego testowania
• Jak dobierać strategię testowania do projektu
• Typowe kompromisy i trade-offy