Test-Driven Development w języku Python

Cele szkolenia

Uczestnicy szkolenia nauczą się:

  • projektować kod obiektowy pod kątem testów - SOLID OOP, Dependency Injection, biblioteki DI w Pythonie
  • pisać testy jednostkowe z wykorzystaniem obiektów pozorujących (stub i mock)
  • organizować testy w projekcie TDD
  • stosować podejście BDD (Behaviour-Driven Design) w cyklach - testy akceptacyjne (Behave) i testy jednostkowe
  • korzystać z dostępnych frameworków do testów jednostkowych w Pythonie oraz narzędzi do Code-Coverage

Plan szkolenia

Wprowadzenie do metodologii Test-Driven Development

  • Podstawowe zasady i praktyki TDD
  • Stosowanie cyklu TDD Red-Green-Refactor
  • Inside-Out vs. Outside-In Development
  • Zalety i wady TDD

Projektowanie obiektowe pod kątem testów

  • SOLID OOP
    • Zasada pojedynczej odpowiedzialności - Single-Responsibility Principle
    • Zasada otwarte-zamknięte - Open/Close Principle
    • Zasada podstawiania Liskov - Liskov Substitution Principle
    • Zasada segregacji interfejsów - Interface Segregation Principle
    • Zasada odwracania zależności - Dependency Inversion Principle

Techniki refaktoryzacji kodu

  • Usuwanie duplikacji kodu
  • Ekstrakcja metody lub funkcji
  • Ekstrakcja klasy
  • Zastępowanie instrukcji warunkowych polimorfizmem
  • Refaktoring do wzorców projektowych

Testy jednostkowe

  • Atrybuty testów jednostkowych - F.I.R.S.T.
  • Organizacja testów i kolejność testowania
  • Przegląd frameworków testów jednostkowych
    • Moduł unittest
    • Moduł doctest
    • Moduł pytest

Wzorce testów jednostkowych

  • Four-Phase Test
  • State Verification
  • Guard Assertion
  • Delta Assertion
  • Custom Assertion
  • Behavior Verification

Izolacja testów

  • Obiekty pozorujące - Fake, Dummy, Stub i Mock
  • Weryfikacja stanu obiektów - użycie obiektów Stub
  • Weryfikacja zachowania - Behaviour-Based Testing - obiekty Mock
  • Biblioteki: unittest.Mock i mockito
    • Asercje zachowań mock'ów
    • Mocking i patching w Pythonie

Testy integracyjne

  • Pisanie i uruchamianie testów integracyjnych
  • Testy integracyjne End-to-End

BDD - Behaviour-Driven Design

  • BDD jako "TDD done right"
  • Testy akceptacyjne dla User Stories - framework Behave!
  • Testy jednostkowe w BDD
    • Moduł nose2.Such - styl wykonywalnej specyfikacji

Pokrycie kodu testami

  • Przegląd narzędzi do Code-Coverage

Wymagania

Znajomość tematów ze szkoleń:

Czas trwania

3 dni po 8 godzin lekcyjnych
Wycena szkolenia zamkniętego

Szkolenie zamknięte w siedzibie Klienta.

Klient zapewnia salę szkoleniową i sprzęt.

Zapytaj o termin i cenę
Wycena szkolenia zdalnego

Szkolenie live online. Warsztaty z trenerem.

Zapytaj o termin i cenę
Terminy szkoleń otwartych

Brak terminu?

Zgłoś zainteresowanie szkoleniem