Szkolenie JUnit dla zaawansowanych

Poziom

Zaawansowany

Czas

24h / 3 dni

Termin

Indywidualnie

Cena

Indywidualnie

Szkolenie z JUnit

Szkolenie poświęcone projektowaniu i utrzymywaniu testów automatycznych w aplikacjach Java i Spring Boot. Zakres obejmuje JUnit Platform i JUnit Jupiter, Mockito, AssertJ, model rozszerzeń, testy kontekstowe i integracyjne, WireMock, Testcontainers, testy kontraktowe oraz integrację zestawu testów z Mavenem, Gradle i potokiem CI/CD. Szkolenie ma charakter praktyczny i kończy się przygotowaniem zestawu testów jednostkowych oraz integracyjnych dla przykładowej aplikacji. Nie obejmuje podstaw programowania w Javie ani wprowadzenia do testów jednostkowych. Uczestnik powinien samodzielnie tworzyć testy w JUnit, korzystać z Mavena lub Gradle oraz znać podstawy Spring Boot. Do ćwiczeń z Testcontainers wymagana jest możliwość uruchamiania kontenerów w środowisku lokalnym.

Dla kogo jest szkolenie z JUnit?
  • logo infoshare programistów Java, inżynierów automatyzacji testów
  • logo infoshare osób odpowiedzialnych za jakość aplikacji, które samodzielnie tworzą testy jednostkowe w JUnit, znają podstawy Mockito, AssertJ i Spring Boot oraz potrafią uruchamiać projekt za pomocą Mavena lub Gradle

Czego się nauczysz na szkoleniu?t

  • Skonfigurować projekt testowy oparty na JUnit Platform, JUnit Jupiter, Mockito i AssertJ z wykorzystaniem Mavena lub Gradle
  • Projektować czytelne i deterministyczne testy parametryzowane, zagnieżdżone i powtarzane oraz zarządzać cyklem życia testów i zasobów
  • Tworzyć własne rozszerzenia JUnit Jupiter oraz współdzielić konfigurację, zasoby i kod pomocniczy między testami
  • Dobierać odpowiedni poziom testu i przygotowywać testy aplikacji Spring Boot, Spring Security, baz danych oraz integracji HTTP z wykorzystaniem WireMock i Testcontainers
  • Zintegrować zestaw testów z potokiem CI/CD, generować raporty, skracać czas wykonania testów, diagnozować niestabilność oraz przygotować migrację z JUnit 4

Program szkolenia

DZIEŃ 1

 

Moduł 1: Podstawy strategii testów jednostkowych

  • Rola testów jednostkowych w strategii jakości
  • Izolacja, deterministyczność, czytelność i szybkość testów
  • Dobre praktyki projektowania testów
  • Antywzorce i źródła niestabilności testów

 

Moduł 2: JUnit Platform i JUnit Jupiter

  • Architektura JUnit Platform
  • Silniki testowe i JUnit Jupiter
  • Konfiguracja zależności JUnit w projekcie Java
  • Współdziałanie JUnit Jupiter, Mockito i AssertJ

 

Moduł 3: Mockito i AssertJ

  • Makiety i stuby
  • Weryfikacja interakcji
  • Ścisłość testów
  • Płynne asercje
  • Asercje złożone i własne warunki

 

Moduł 4: Zaawansowane funkcje JUnit Jupiter

  • Założenia testowe i warunki uruchomienia testów
  • Cykl życia instancji testowych i zasobów
  • Testy powtarzane i zagnieżdżone
  • Testy parametryzowane
  • Źródła argumentów i konwersja danych
  • Pliki i katalogi tymczasowe
  • Parametry metod testowych

 

DZIEŃ 2

 

Moduł 5: Extension Model

  • Architektura rozszerzeń JUnit Jupiter
  • Wbudowane rozszerzenia
  • Punkty rozszerzeń
  • Własne rozszerzenia
  • Wspólna konfiguracja testów
  • Współdzielone zasoby i kod pomocniczy

 

Moduł 6: JUnit w praktyce projektowej

  • Konfiguracja JUnit Platform z Mavenem i Gradle
  • Równoległość i kolejność testów
  • Optymalizacja czasu wykonania testów
  • Raporty testowe
  • Integracja z potokiem CI/CD
  • Migracja z JUnit 4 do JUnit Jupiter

 

Moduł 7: Testy jednostkowe i testy z kontekstem Spring Boot

  • Kryteria wyboru poziomu testu
  • Testy jednostkowe
  • Testy warstwy
  • Testy z pełnym kontekstem aplikacji
  • Zakres i koszt uruchomienia kontekstu

 

Moduł 8: Wsparcie Spring Boot dla testów

  • Adnotacja @SpringBootTest
  • Tryby środowiska webowego
  • Konfiguracja testowa
  • Profile i właściwości testowe
  • Atrapy komponentów i zależności zastępcze
  • Testy z uruchomionym serwerem i losowym portem
  • MockMvc i testy warstwy HTTP
  • Test slices i zakres kontekstu aplikacji

 

DZIEŃ 3

 

Moduł 9: Testy integracji z bazą danych

  • Baza danych w pamięci
  • Baza danych w kontenerze
  • Testy warstwy dostępu do danych
  • Kryteria wyboru testu jednostkowego i integracyjnego
  • Transakcje i izolacja danych
  • Czysty stan środowiska testowego

 

Moduł 10: Testy integracji ze Spring Security

  • Konfiguracja kontekstu bezpieczeństwa
  • Uwierzytelnianie i autoryzacja w testach
  • Testy dostępu do chronionych zasobów
  • Scenariusze użytkowników i uprawnień

 

Moduł 11: WireMock i integracje HTTP

  • Izolacja zewnętrznych usług HTTP
  • Stuby i scenariusze WireMock
  • Weryfikacja żądań
  • RestTestClient
  • WebTestClient
  • TestRestTemplate
  • Kryteria doboru klienta testowego

 

Moduł 12: Testcontainers i testy kontraktowe

  • Środowiska zależności w kontenerach
  • Konfiguracja kontenerów testowych
  • Cykl życia kontenerów
  • Izolacja i powtarzalność środowiska
  • Podstawy testów kontraktowych
  • Demonstracja scenariusza kontraktowego

 

Moduł 13: Projekt końcowy i synteza materiału

  • Zestaw testów jednostkowych
  • Zestaw testów integracyjnych
  • Konfiguracja środowiska testowego
  • Raportowanie wyników
  • Analiza jakości i stabilności testów
  • Wnioski i dobre praktyki

Skontaktuj sie z nami

zorganizujemy dla Ciebie szkolenie dopasowane do Twoich potrzeb

Przemysław Wołosz

Key Account Manager

przemyslaw.wolosz@infoShareAcademy.com

    Administratorem danych osobowych jest InfoShare Academy Sp. z o.o. z siedzibą w Gdańsku, al. Grunwaldzka 427B, 80-309 Gdańsk, KRS: 0000531749, NIP: 5842742213. Dane osobowe przetwarzane są zgodnie z klauzulą informacyjną.