Poziom

Zaawansowany

Czas

24h / 3 dni

Termin

Indywidualnie

Cena

Indywidualnie

Szkolenie z JUnit

JUnit 5 to framework nowej generacji do tworzenia automatycznych testów jednostkowych w technologii Java, oferujący wiele ciekawych funkcji, takich jak np. testy parametryzowane, wstrzykiwanie zależności, całkowite wsparcie dla Javy 8, czy w końcu nowe API, umożliwiające łatwiejsze niż kiedykolwiek rozszerzanie możliwości frameworka i dostosowanie go do potrzeb projektowych. Frameworki takie jak JUnit 5 wykorzystywane są dzisiaj nie tylko w testach jednostkowych. Mają również szerokie zastosowanie w testach wyższego poziomu, w tym w testach funkcjonalnych.

Dla kogo jest szkolenie z JUnit?
  • logo infoshare Szkolenie jest dedykowane wszystkim, którzy chcą zdobyć lub poszerzyć swoją wiedzę na temat testów jednostkowych, frameworków JUnit 5 oraz Mockito 2 oraz najlepszych praktyk i konwencji w tworzeniu testów jednostkowych.

Czego się nauczysz na szkoleniu JUnit

  • Nauczysz się jak zrealizować kompletny proces od wczytania danych, przez przekształcenia, aż do udostępniania wyników

  • Poznasz dokładnie charakterystykę podstawowego elementu jakim są wielowymiarowe tablice NumPy

  • Nauczysz się jak pracować z danymi tabelarycznymi z wykorzystaniem biblioteki Pandas

  • Dowiesz się jak wczytać i zintegrować dane z różnorodnych źródeł oraz jak zautomatyzować proces analizyrnrn

  • Zobaczysz jak wykorzystać zdobytą wiedzę w dalszej pracy w kierunku uczenia maszynowegornrn

Program szkolenia JUnit

Teoria testów jednostkowych
  • Motywacja do pisania testów jednostkowych
  • Zasady pisania dobrych testów
  • Dobre praktyki, powszechne błędy – tak naprawdę ten punkt będzie przewijał się przez całe szkolenie

Trzy podstawowe narzędzia – JUnit5, Mockito, AssertJ
  • Powtórka i rozwinięcie najpopularniejszej kombinacji narzędzi spotykanej przy pisaniu testów jednostkowych w Javie.
  • Wstęp do architektury JUnit
  • Podpięcie JUnit do projektu
  • Mockito – dlaczego jest ważne, jak poprawnie z niego korzystać, mniej popularne funkcjonalności przydatne w codziennej pracy
  • AssertJ – najczytelniejsza biblioteka do asercji w Javie

JUnit 5 – advanced
  • Assumptions
  • Lifecycle – omówienie dwóch dostępnych rodzajów
  • Repeated i Nested tests – use cases
  • Testy parametryzowane – różne rodzaje parametryzacji
  • Praca z plikami
  • Wstrzykiwanie do metod testowych – wstęp do ExtensionModel

Extension Model – deep dive
  • Build-in extensions
  • Jak pisać własne rozszerzenia
  • W jaki sposób współdzielić powtarzalny kod między testami przy pomocy rozszerzeń

JUnit in Real Life
  • Konfiguracja JUnit 5 z Maven / Gradle
  • Optymalizacja czasu wykonania testów
  • Generowanie raportów i integracja z CI / CD
  • Migracja JUnit 4 -> JUnit 5

Czym testy kontekstu Spring Boota różnią się od typowych testów jednostkowych
  • Kiedy wystarczy nam zwykły test, a kiedy powinniśmy postawić kontekst Spring Boota

Wsparcie Spring Boota do pisania testów
  • Adnotacja @SpringBootTest
  • Konfiguracja testowa + test properties
  • Bean Mocks
  • Testy z uruchomionym serwerem
  • MockMvc
  • Slice tests

Testowanie integracji z bazą danych
  • Jak dostarczyć bazę danych dla testów
  • Jak jednostkowo testować interakcje z bazą danych
  • Kiedy testować jednostkowo, a kiedy integracyjnie
  • Jak testować kod, który wymaga transakcji

Integracja ze Spring Security

Wiremock
  • Testowanie integracji z innymi serwisami
  • TestWebClient vs TestRestTemplate
  • Testy integracyjne Wiremock

TestContainers – co oferują i kiedy warto skorzystać

Contract Tests – demo

Powtórzenie i podsumowanie materiału

Ostatni projekt

Pobierz program

Pobierz szczegółowy program w PDF, żeby dowiedzieć się więcej o godzinach i tematach zajęć.

Skontaktuj sie z nami

zorganizujemy dla Ciebie szkolenie dopasowane do Twoich potrzeb

Przemysław Wołosz

Key Account Manager

przemyslaw.wolosz@infoShareAcademy.com

    Zamów rozmowę

    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: 5842742121. Dane osobowe przetwarzane są zgodnie z klauzulą informacyjną.