Przejdź do treści

Szkolenie Testy jednostkowe

Zaczniesz pisać testy jednostkowe i integracyjne, które dają pewność przy każdej zmianie w kodzie.

  • Czas trwania: 3 dni
  • Poziom: od podstaw
  • Forma: warsztat dla zespołu
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, hooki beforeEach i afterEach
    • Asercje i własne matchery
    • Testy parametryzowane (test.each)
    • Snapshoty i ich pułapki
    • Testy typów w Vitest: expectTypeOf i 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/await i 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

@piecioshka

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.

Więcej na stronie "O mnie"

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