## Testowanie + Clean Architecture w środowisku Androida

Category
Szkolenia
About This Project

Testowanie + Clean Architecture w środowisku Androida
Czas trwania: 2 dni
Trener: Michał Charmas

Podstawy testowania
* Rodzaje testów i przykłady ich wykorzystania
* Zakres testów
* Jednostkowe
* Integracyjne
* End 2 End
* Rola testów
* Akceptacyjne
* Regresywne
* Strategia budowania piramidy testów

* Projektowanie przypadków testowych
* Testowanie przypadków granicznych
* Nacisk na testy jednostkowe w celu osiągnięcia wysokiego pokrycia testami
* Architektura wspierająca wysokie pokrycie testami
* Rozwarstwienie logiki na Aplikacyjną i Domenową
* Modelowanie logiki przy pomocy Building Blocks z Domain Driven Design
* Powtarzalność testów, wyeliminowanie losowości z testów
* Najlepsze praktyki tworzenia przypadków testowych

* Testowanie jednostkowe
* Określanie zakresu jednostki i nazwy testów
* Tworzenie własnych asercji
* Techniki: Mock, Stub, Fake
* Dobór technik do potrzeb – czym się kierować
* Przykłady implementacji w Mockito
* Mockowanie
* Zalety testowania w izolacji
* Nagrywanie zachowania
* Weryfikacja wywołań
* Testability – podatność kodu na testy
* Jak pisać kod, który daje się testować
* Najlepsze praktyki: SOLID
* Wybrane wzorce projektowe, które zwiększają testability: Factory, Strategy, Value Object
* Wprowadzenie do testowania z użyciem narzędzia Spock
* Code smell – „zapachy” nietestowalnego kodu

* Tworzenie modularnego kodu
* Techniki Inversion of Control
* Dependency Injection
* Dynamiczne wstrzykiwanie zależności
* Wstrzykiwanie zaślepek na czas testów
* Events
* Separacja i decoupling testowanych modułów
* Luźne wiązanie komponentów z użyciem Event Bus
* Dobre praktyki i użyteczne wzorce projektowe na platformie Android.
* Clean Architecutre – architektura sprzyjająca testowaniu w środowisku Androida

* Testowanie w środowisku Andorida
* Wprowadzenie do testowania z użyciem Android Testing Framework
* Zastosowanie architektury umożliwiającej testowanie
* Mockowanie w środowisku Androida
* Narzędzia, pułapki, najlepsze praktyki
* Tworzenie szybkich testów z wykorzystaniem biblioteki Robolectric
* Werbalizacja asercji z użyciem AssertJ oraz rozszerzenia AssertJ – Android
* Testowanie z użyciem biblioteki RoboSpock
* Tworzenie testów funkcjonalnych aplikacji z użyciem Espresso
* Przegląd narzędzi wspomagających testowanie