Całość: ~8 dni roboczych na wdrożenie poprawek
Napisanie kodu trwa zajmie Ci troszkę więcej czasu, ale znacząco minimalizujesz ryzyko wystąpienia głupiego błędu na produkcji
Pozwól, że opowiem Ci pewną historię. Dołączyłem kiedyś do projektu w jednej z krakowskich agencji. Nie było w projekcie w nim ani grama testów. Aplikacja działała już od jakiegoś czasu na produkcji.
Spytasz się mnie, czy zespół palił się do refaktorowania apki i wdrażania nowych funkcjonalności? Otóż nie. Nikt nie miał odwagi żeby coś zmienić, bo z każdą istotniejszą zmianą trzeba było przebudowywać aplikację, wgrywać na telefon i ręcznie klikać przeróżne scenariusze.
Nowe ficzerki były estymowane na ogromne ilości story pointów, a niektóre poważne bugi dostawały labelkę „won’t do”. Cóż, Jira wszystko przyjmie. Psychika deweloperów niekoniecznie. Przecież tak się nie da pracować.
Jako że byłem „nowy” w zespole i nie cały ten marazm mnie jeszcze nie dotyczył, postanowiłem coś z tym zrobić. Na początek napisałem kilka testów do najprostszych przypadków i dodałem podstawowy flow CI/CD. Tyle wystarczyło, by zespół przekonał się do pracy w ten sposób, a testów powstawało coraz więcej.
Członkowie zespołu nie bali się już refaktoru. Ficzerki dało się estymować bardziej realistycznie. A wiesz co jest w tym najlepsze? W żadnym momencie nie zastanawialiśmy się nad tym czy w naszych estymatach uwzględniać czas potrzebny na napisanie testów, lub czy product owner „da przyzwolenie” na takie prace.
Unit testy stały się integralnym elementem dowożenia tasków i całego procesu dostarczania oprogramowania. Tak trzeba żyć.
Lekcja po lekcji, moduł po module zagłębiasz się w kolejne tajniki testów.
Każdy koncept zrozumiesz i dzięki temu go wdrożysz.
Omówimy pokrótce wszelkie narzędzia z których będziemy korzystać.
Poznasz tutaj wzorce given-when-then i dowiesz się czy warto używać adnotacji typu @BeforeClass. Poznasz również sposoby na odpalanie testów jUnit4 i jUnit5 w obrębie jednego projektu.
Zobaczysz czym tak naprawdę są asercje, odkryjesz potencjał drzemiący w bibliotekach standardowych jUnit5, zapoznasz się z zewnętrznymi libkami do asercji i wreszcie zbudujesz własne, reużywalne metody do asercji.
Poznasz konkretne sposoby na tworzenie stubów z Mockito, MockK, Mockito-Kotlin, a także bez użycia frameworków. Nauczysz się jak wydajnie wykorzystywać te narzędzia, żeby mieć porządek w testach.
Jak sprawdzić side effecty? Jak używać matcherów? Jak do tego wszystkiego ma się Mockito? Na te i inne pytania znajdziesz odpowiedzi w tym module.
Mając już niezbędne podstawy ze struktury testów, asercji i mockowania, stworzysz pełen test dla rzeczywistego use case’u. Omówię tutaj kilka podejść do testowania takich komponentów.
Coroutines stają się standardem w Androidzie. W tym module poznasz metody testowania kodu opartego o Kotlin Coroutines , także z wykorzystaniem zewnętrznych bibliotek.
RxJava była złotym standardem zanim korutyny na dobre przejęły serca i dusze Android devów. W tych lekcjach poznasz sprawdzone sposoby na ujarzmienie kodu reaktywnego.
Poznasz filozofię stojącą za testowaniem androidowych ViewModeli. Zobaczysz jak zaplanować testy z tym komponentem i co tak naprawdę powinno się przetestować. Nauczysz się również budować testy klas wykorzystujących LiveData i StateFlow
Testowanie przez weryfikację metod? Albo asercje na stanie widoku? W tym module poznasz konkretne i sprawdzone sposoby na testowanie kodu zbudowanego ze wzorcami Model-View-Presenter, Model-View-Intent, a także Model-View-Cokolwiek (zobaczysz, że filozofia testowania nie różni się aż tak bardzo między różnymi implementacjami MVC)
Prześledzimy słabo zaprojektowaną apkę, oczywiście taką bez żadnych sensownych testów. Pokażę jak w takich sytuacjach podejść do tworzenia testów i co możemy zrobić, żeby podnieść jakość w projekcie.
W module bonusowym poznasz kilka smaczków i hacków na niestandardowe rzeczy. Pokaże tutaj jak zamockować loggery, jak radzić sobie z datami i czasem w kodzie, a także jak ogarnąć testy dla klas wykorzystujących Context.
Programista – od 2016 roku zajmuję się budowaniem aplikacji mobilnych.
Założyłem KotlinTesting.com – w tym momencie jest to największy portal poświęcony testowaniu w Kotlinie.
Jestem prelegentem IT (występuję m.in na konferencjach Droidcon, DevFest, Mobilization), blogerem i trenerem programowania.
Poprzez bloga i wystąpienia pomagam deweloperom Androida skutecznie nawigować w skomplikowanym świecie unit testów.
Zobacz jak wygląda kurs od środka!
Konfiguracja środowiska
Asercje bez tajemnic
Test Doubles: Stub & Fake
Test Doubles: Mock i weryfikacje
Kotlin Coroutines w testach
RxJava w testach
Testujemy ViewModele!
Model-View-Presenter
Model-View-Intent
Dirty Architecture
Inne rodzaj definicji testów: specyfikacje
Bonusy
Wprowadzenie do CI: Github Actions
Testy Parametryczne
Testy API
Dostęp do kodziku na Gitlabie z omawianymi przykładami i projektami
Dostęp do przyszłych aktualizacji programu
Nagrania wszystkich poprzednich spotkań LIVE
Wsparcie grupy Mastermind
Oto, co otrzymasz w Android ❤️ Unit Testy:
Jeżeli z dowolnego powodu uznasz, że ten kurs nie jest jednak dla Ciebie, to jak najszybciej zwrócę Ci 100% kwoty.
Pełne bezpieczeńswo. Masz miesiąc na testowanie kursu
(testowanie kursu o testach – incepcja)
Dostajesz mięsistą teorię wraz z praktyką. Tak, to dość specjalistyczna wiedza. Materiały są tak przygotowanem że nowe skille od razu przydadzą Ci się w projektach.
Przedstawiam same konkrety, bez lania wody.
Krótkie lekcje pozwalają na łatwe powracanie do materiałów (jeśli chcesz coś sobie przypomnieć).
Uważasz, że w kursie przydałyby się pojawić jakieś nowe materiały? Wtedy dajesz mi znać, a ja staram się takie lekcje nagrać lub opisać na blogu.
Dzięki takim działaniom (student widzi potrzebę poruszenia danej rzeczy) powstały dwa nowe moduły od czasu pierwszej edycji – Testowanie API oraz Wprowadzenie CI/CD na przykładzie Github Actions.
Wyjątkowe jest to, że masz dostęp nie tylko edukacyjnych, ale również wsparcie społeczności Android developerów i mentorów programu.
Tak, wystarczy, że w formularzu zamówienia podasz dane firmy w odpowiednim polu. System wygeneruje fakturę, którą bez problemu wrzucisz w koszta swoje, lub swojego pracodawcy.
Jeśli z dowolnego powodu nie przypasuje Ci kurs, to dajesz mi znać mailem, a ja dokonuję zwrotu pieniędzy. Masz na to 30 dni od momentu dołączenia do kursu.
Dasz radę. Zadbam o to. Opowiem od podstaw co, jak, gdzie i dlaczego. Przejdziemy pełną ścieżkę – od konfiguracji odpowiednich frameworków w projekcie po sensownie wyglądające pokrycie testami.
Podstawowa znajomość tego języka jest konieczna. Nie musisz jednak wymiatać w tej dziedzinie – będziemy używać podstawowych konstrukcji. Jeśli znasz już jakieś języki JVM takie jak Java czy Scala – bez problemu ogarniesz.
TAK. Te materiały przygotowane są specjalnie pod software development aplikacji mobilnych na Androida.
TAK. Po to są budżety szkoleniowe w firmach. Wystarczy, że w polu zamówienia podasz dane firmy na którą ma być wystawiona faktura. Może to być Twój pracodawca, lub Twoje JDG.
Nawet jeśli poświęcisz na to kilka minut dziennie, to już po kilku tygodniach poczujesz się pewniej w unit testach na Androidzie.
Lekcje skonstruowane są „atomowo” – każda z nich porusza temat w taki sposób, że możesz do niej wrócić w dowolnym momencie gdy potrzebujesz sobie coś przypomnieć.
Dowolnie długo. Możesz zacząć przerabiać kurs w dowolnym momencie i wracać do niego, kiedy chcesz. Gdybym w przyszłości zamierzał go usunąć, powiadomię cię o tym z wyprzedzeniem i dam możliwość pobrania na dysk wszystkich materiałów wideo i lekcji dodatkowych.
Od razu po zaksięgowaniu wpłaty. Pamiętaj, że niektóre metody płatności (takie jak tradycyjny przelew) mogą nie być realizowane w weekendy.
Nie. Ten kurs dedykowany jest deweloperom.
Chcesz żebym zbudował dla Ciebie program szkoleniowy testowania mobilek – dla testerów? Daj mi znać w wiadomości prywatnej lub pisząc na jarek@kotlintesting.com
Polityka prywatności dostępna jest pod tym linkiem.
Copyright KotlinTesting.com 2023
Jarosław Michalik