Zakres szkolenia
Na szkoleniu omawiane są techniki Test Driven Development w języku C++. Uczestnicy szkolenia zapoznają się z zasadami projektowania oprogramowania obiektowego pod kątem testów - SOLID OOP, Dependency Injection, itp. Szczególny nacisk położony jest na praktyczną naukę pisania testów jednostkowych z wykorzystaniem obiektów pozorujących (stub i mock) i organizowanie ich w projekcie rozwijanym w metodologii TDD.
Plan szkolenia
Wprowadzenie do Test-Driven Development
- Podstawowe zasady i praktyki TDD
- Stosowanie cyklu TDD Red-Green-Refactor
- Zalety i wady TDD
- TDD Kata i Dojo
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
Testy jednostkowe
- Definicja testu jednostkowego
- Atrybuty testów jednostkowych - FIRST
- Organizacja testów i kolejność testowania
-
Przegląd framework’ów testów jednostkowych
-
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
- Użycie obiektów Stub - weryfikacja stanu obiektów w testach
- Behaviour-Based Testing – obiekty Mock
-
Biblioteki mockujące w C++
Dependency Injection w TDD
- Stosowanie Dependency Injection w TDD
- Praca z biblioteką Boost.DI
Refaktoring
- Ekstrakcja klas lub interfejsów
- Zmiana nazw zmiennych, pól, metod i klas
- Enkapsulacja pól
- Zastępowanie instrukcji warunkowych polimorfizmem
- Refaktoring do wzroców projektowych
- Refaktoring kodu legacy
Testy integracyjne i Code-Coverage
- Testy integracyjne
- Testy End-to-End
- Narzędzia do Code-Coverage
Szkolenie przeznaczone dla programistów C++. Wymagana znajomość podstaw C++.
3 dni po 8 godzin lekcyjnych