Warsztat Java #8 - Testy jednostkowe
What you'll learn
- Definicja testów jednostkowych i ich rola w cyklu życia oprogramowania.
- Zrozumienie różnic między testami jednostkowymi, integracyjnymi, systemowymi i akceptacyjnymi.
- Poznanie korzyści płynących z pisania testów jednostkowych, takich jak wczesne wykrywanie błędów, dokumentowanie kodu oraz refaktoryzacji i utrzymania
- Konfiguracja środowiska testowego z użyciem JUnit.
- Użycie podstawowych adnotacji w JUnit, takich jak @Test, @Before, @After.
- Pisanie testów jednostkowych przy użyciu asercji, takich jak assertEquals, assertTrue, assertFalse.
- Zarządzanie wyjątkami w testach i tworzenie testów parametrów.
- Zrozumienie cech dobrych testów jednostkowych: szybkie, izolowane, powtarzalne, samosprawdzające się i terminowe.
- Najlepsze praktyki w pisaniu testów jednostkowych, w tym jak unikać pułapek i błędów.
- Czym jest pokrycie kodu testami i jak je mierzyć.
- Narzędzia do analizy pokrycia kodu, takie jak JaCoCo.
- Wprowadzenie do TDD i jego znaczenie w procesie tworzenia oprogramowania.
- Pisanie testów przed implementacją kodu i stosowanie podejścia TDD w praktyce.
Requirements
- Uczestnik powinien być zaznajomiony z podstawami programowania w Javie, w tym z koncepcjami takimi jak klasy, obiekty, interfejsy i wyjątki.
- Kurs jest intensywny i wymaga aktywnego uczestnictwa oraz chęci do nauki nowych narzędzi i technik.
Description
Zapraszam Cię na warsztat poświęcony testom jednostkowym w języku Java! Testowanie jednostkowe to kluczowy element procesu tworzenia oprogramowania, który pozwala na automatyczne sprawdzanie poprawności działania kodu. Mój kurs przeznaczony jest zarówno dla początkujących, jak i doświadczonych programistów, którzy chcą nauczyć się pisać skuteczne testy jednostkowe i zrozumieć, jak testy mogą poprawić jakość i stabilność aplikacji.
Tematyka warsztatu:
Czym jest testowanie? Po co się testuje?
Definicja testowania i jego rola w cyklu życia oprogramowania.
Rodzaje testów: jednostkowe, integracyjne, systemowe, akceptacyjne.
Korzyści płynące z testów jednostkowych: wczesne wykrywanie błędów, dokumentacja kodu, ułatwienie refaktoryzacji.
JUnit
Wprowadzenie do JUnit, najpopularniejszej biblioteki do testów jednostkowych w Javie.
Konfiguracja środowiska testowego.
Podstawowe adnotacje i konstrukcje w JUnit: @Test, @Before, @After, assertEquals, assertTrue, etc.
Przykłady pisania testów jednostkowych z użyciem JUnit.
Zasady pisania dobrych testów jednostkowych
Cechy dobrych testów jednostkowych: szybkie, izolowane, powtarzalne.
Pisanie testów zgodnie z zasadą FIRST (Fast, Independent, Repeatable, Self-validating, Timely).
Praktyczne wskazówki i najlepsze praktyki w pisaniu testów jednostkowych.
Pokrycie kodu testami
Co to jest pokrycie kodu testami i dlaczego jest ważne?
Narzędzia do mierzenia pokrycia kodu w Javie (np. JaCoCo).
Jak interpretować wyniki pokrycia i jak dążyć do optymalnego pokrycia kodu?
TDD (Test-Driven Development)
Wprowadzenie do TDD: zasady i filozofia.
Cykl TDD: Red-Green-Refactor.
Przykłady podejścia TDD w praktyce: pisanie testów przed kodem, refaktoryzacja.
Zadania praktyczne i projekt
Ćwiczenia praktyczne w pisaniu testów jednostkowych.
Praca nad projektem, który pozwoli na zastosowanie wiedzy w praktyce.
Zadania sprawdzające zrozumienie materiału i umiejętność pisania testów.
Wyobraź sobie, że napisaliśmy już dużo kodu, który działa i sprawdziliśmy ręcznie, że robi to, co powinien. Teraz chcemy zmodyfikować sporą część aplikacji. W jaki sposób możemy upewnić się, że nic nie popsuliśmy? Albo możemy zrobić to znowu ręcznie, albo napisać testy, które można rozumieć jak program testujący nasz program.
Warsztat ten jest ósmym warsztatem w ramach ścieżki Zajavka. Oczywiście możesz go realizować niezależnie od innych moich materiałów.
Ten warsztat został nagrany w Java 17. Testy w tym warsztacie również odnoszą się do Java 17. Ma to o tyle znaczenie, że jeżeli będziesz korzystać z nowszych wersji Java, to teoretycznie mogły tam nastąpić jakieś kosmetyczne zmiany. Dlatego dla spójności, zalecamy korzystanie z JDK 17, żeby Twoje przykłady zachowywały się tak jak na nagraniach, ale nie zabraniamy korzystać z nowszego JDK. Pamiętajmy, że Java z założenia jest kompatybilna wstecznie.
Jeżeli natomiast chodzi o wersje narzędzi, to struktura warsztatu została przygotowana w ten sposób, że bazowe mechanizmy JUnit (biblioteka, o której będziemy rozmawiać) są wyjaśnione na JUnit 5. Jeżeli w nowszych wersjach pojawią się funkcjonalności, które są istotne (naszym zdaniem) na tym poziomie nauki, to zakres warsztatu będzie rozszerzany i będziemy do niego dodawać kolejne materiały.
Who this course is for:
- Początkujących programistów, którzy dopiero zaczynają swoją przygodę z testowaniem i chcą zrozumieć podstawy pisania testów jednostkowych.
- Inżynierów QA i specjalistów ds. testowania, którzy pragną zrozumieć, jak programiści piszą testy jednostkowe i jak mogą współpracować przy tworzeniu bardziej niezawodnego oprogramowania.
- Średniozaawansowanych deweloperów, którzy chcą pogłębić swoją wiedzę na temat testowania i nauczyć się stosować najlepsze praktyki w codziennej pracy.
Instructors
Zajavka to kompletny, profesjonalny i pasjonujący roczny kurs programowania. Zajavkę stworzyliśmy z myślą o tych, którzy pragną rozpocząć swoją intensywną przygodę z programowaniem i w ciągu 12 miesięcy osiągnąć poziom profesjonalnego programisty Javy. Zacznij naukę od bootcampu od podstaw i kontynuuj ją w warsztatach, które krok po kroku, intensywnie i w ciągu kilku miesięcy przygotują Cię do pełnienia roli profesjonalnego programisty Javy.
Jestem programistą Java z ponad 9 letnim doświadczeniem komercyjnym. Zajmuję się głównie technologiami Java i JVM oraz tworzeniem stron aplikacji webowych wykorzystujących technologie Java, Spring, Kafka. Mam również doświadczenie w tworzeniu aplikacji opartych o React. Stawiam przede wszystkim na ciągły rozwój osobisty, zdobywanie nowych umiejętności i podnoszenie jakości swojej pracy. W swojej karierze zawodowej spędziłem dużo czasu ucząc innych, prowadząc szkolenia i nagrywając materiały wideo w celach edukacyjnych.