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 lekcyjnychWycena szkolenia zamkniętego
Szkolenie zamknięte w siedzibie Klienta.
Klient zapewnia salę szkoleniową i sprzęt.
Zapytaj o termin i cenę