Szkolenie Testy jednostkowe
Zaczniesz pisać testy jednostkowe i integracyjne, które dają pewność przy każdej zmianie w kodzie.
Zapytaj o termin Pobierz program (PDF)Refaktoryzacja bez testów to zgadywanie: zmieniasz jedną funkcję i nie wiesz, co przestało działać w innym miejscu, dopóki nie zgłosi tego użytkownik. Po tym szkoleniu napiszesz testy jednostkowe i integracyjne, które w kilka sekund pokażą, czy zmiana coś zepsuła, i sprawdzą moduły zarówno w izolacji, jak i we współpracy z innymi częściami aplikacji, a w module opcjonalnym także z bazą danych.
Na koniec zaimplementujesz funkcję metodą Test First, zaczynając od testu. Pełny proces przećwiczysz na szkoleniu Test-driven development.
Program
3 dni
- Po co testy?
- Test jednostkowy a integracyjny
- Dobry test: szybki, powtarzalny, czytelny
- Narzędzia
- Vitest i Jest
- Wbudowany runner Node.js (
node:test) i jego ograniczenia - Mocha z Chai, Jasmine i Karma (przestarzała od 2023): kiedy migrować
- Anatomia testu
- Struktura Arrange, Act, Assert
describe,it, hookibeforeEachiafterEach- Asercje i własne matchery
- Testy parametryzowane (
test.each) - Snapshoty i ich pułapki
- Testy typów w Vitest:
expectTypeOfi flaga--typecheck
- Kod asynchroniczny
- Promise i async/await w testach
- Fałszywe zegary (fake timers)
- Dublery testowe
- Stub, spy, mock i fake: czym się różnią
- Mockowanie modułów i zależności
- Mockowanie zapytań HTTP z MSW
- Testy integracyjne z bazą danych (moduł opcjonalny dla zespołów
frontendowych)
- Testowanie API z bazą danych
- Testcontainers i izolacja danych
- Testowanie komponentów UI
- Testing Library: pierwszy test komponentu jak użytkownik
- Środowisko jsdom a tryb przeglądarkowy Vitest (stabilny od wersji 4)
- Test First w praktyce
- Cykl red, green, refactor na jednym zadaniu
- Jakość testów
- Pokrycie kodu i jego ograniczenia
- Testy w CI
- Dalsze kroki
- Property-based testing: losowe dane wejściowe z fast-check
- Testy mutacyjne ze Strykerem
Dla kogo?
- Dla programistów JavaScript i TypeScript (frontend i Node.js), którzy piszą mało testów albo żadnych.
- Dla zespołów, które chcą bezpiecznie refaktoryzować istniejący kod.
- Dla osób, które chcą spróbować Test First na prawdziwym zadaniu.
Co musisz umieć?
- Pisać kod w JavaScript lub TypeScript.
- Znać
async/awaiti obsługę Promise. - Uruchomić kontener Dockera (tylko na opcjonalny moduł testów integracyjnych z bazą danych).
Czego się nauczysz?
- Napiszesz czytelne testy jednostkowe w Vitest lub Jest.
- Wybierzesz runner testów i zdecydujesz, kiedy migrować z Mocha lub Jasmine.
- Sprawdzisz wiele przypadków jednym testem parametryzowanym, a typy testem typów.
- Dobierzesz właściwy dubler testowy i nie przesadzisz z mockowaniem.
- Przetestujesz kod asynchroniczny i zapytania HTTP bez prawdziwego serwera.
- Z modułem opcjonalnym: przetestujesz API z prawdziwą bazą danych uruchomioną w Testcontainers.
- Napiszesz pierwszy test komponentu UI z Testing Library.
- Zaimplementujesz funkcję metodą Test First, zaczynając od testu.
- Ocenisz jakość testów nie tylko po procencie pokrycia.
- Poznasz testy property-based i mutacyjne jako następny krok.
Trener
Piotr Kowalski
W branży IT od 2008 roku. Od 2014 jest mentorem dla wielu developerów. Jako trener spędził na sali szkoleniowej kilka tysięcy godzin, a na LinkedIn ma 52 rekomendacje. Każde jego szkolenie to dawka solidnej wiedzy oraz humoru.
Zorganizujmy to szkolenie w Twoim zespole
Napisz, z czym pracujecie i na jakim poziomie jest grupa. Odpowiem z propozycją programu dopasowanego do Waszego projektu.
Zapytaj o szkolenie Pobierz program (PDF) Zobacz wszystkie szkolenia