Ta lekcja jest w bazie eduweb

Zaloguj się kontem z dostępem albo wykup dostęp do bazy, żeby obejrzeć wideo.

Lekcja 17/ 45Testowanie funkcji PHP

0:00 / 0:00
Full-stack i ProgramowaniePHPTesty Jednostkowe w PHP

Test Driven Development: Testowanie funkcji PHP

8 godz. 51 min wideo45 lekcji8 modułów

Czego się nauczysz

  • Obalenie mitów i wymówek o TDD
  • Skuteczne metody konstruowania testów
  • Workflow pracy w Test Driven Development
  • Wykorzystanie mozliwosci PHPUnit
  • Modelowanie aplikacji przez testy
  • Testowanie Legacy Code
  • Wskazówki od eksperta - praktyka
  • Kompletne pliki zródlowe i wiele wiecej!

Test Driven Development - Testy Jednostkowe w PHP

Jeżeli programujesz w PHP i masz dość wysypujących się aplikacji oraz powtarzających się błędów, to bardzo dobrze trafiłeś. Ten kurs nauczy Cię jak pisać najpierw testy, a później kod. Poznasz moje najlepsze techniki oraz strategie, które sprawdzają się w tworzeniu nowych aplikacji oraz w pracy z Legacy Code. Zmienisz swoje nastawienie do testów, pozbędziesz się wszystkich wymówek i nauczysz się jak zastosować TDD w praktyce.

Kurs składa się z siedmiu modułów, które krok po kroku wprowadzą Cię do świata Test Driven Development. Na początku rozprawimy się z popularnymi wymówkami, które blokują Cię przed pisaniem testów. Poznasz niezbędną teorię, a następnie przygotujemy środowisko do pracy. W trakcie kursu stworzymy prostą grę karcianą - Makao, zaczynając za każdym razem od testów, których w trakcie całego kursu napiszemy wspólnie znacznie ponad 100. Zdobędziesz wiedzę i doświadczenie, które wyniosą Twój kod na wyższy poziom działania, jakości oraz bezpieczeństwa.

Mity, wymówki i konsekwencje braku testów

Test Driven Development jest jak zdrowy styl życia. Każdy słyszał, że warto to robić, ale mało kto stosuje się do tego w praktyce. Pokażę Ci realne przykłady konsekwencji braku testów, obalę popularne mity oraz pozbędziemy się Twoich wymówek, by nie pisać testów. Zobaczysz czym jest TDD oraz jak powinna wyglądać piramida testów w Twoim projekcie.

Workflow w TDD

Praca w Test Driven Development ma swoją kolejność. Poznasz cykl Red - Green - Refactor, właściwe nazewnictwo oraz metodę 0, 1, N, Exception. Dzięki temu będziesz wiedzieć dokładnie od czego zacząć. Nauczysz się używać PHPUnit, czyli podstawowego narzędzia do tworzenia testów w PHP, oraz dowiesz się co testować, a czego nie.

Metody testowania

PHP dostarcza wiele funkcjonalności, które stanowią wyzwanie podczas testowania. Pokażę Ci jak testować podstawowe interfejsy i elementy języka PHP. Dowiesz się jak poradzić sobie z testowaniem funkcji losowych, takich jak shuffle, rand czy daty oraz czas, by Twoje były od nich niezależne. Zobaczysz jak poprawnie wstrzykiwać zależności oraz tworzyć zależności między testami, by pisać kod szybciej i lepiej.

Mechanizmy w PHPUnit

W tej części nauczę Cię jak korzystać w pełni z możliwości najlepszej biblioteki do testowania w PHP. Dowiesz się czym jest Stub, Mock oraz Spy i jak ich używać poprawnie. Dowiesz się jak testować wiele przypadków jednocześnie dzięki Data Providerom oraz jak oddzielać testy jednostkowe od integracyjnych przy użyciu Test Suites. Na koniec zobaczysz jak generować raporty pokrycia kodu, czyli Code Coverage. Zrozumiesz dlaczego 100% pokrycia jest proste do uzyskania i nie jest to dobra miara jakości kodu.

Implementacja gry w MAKAO

Cały kurs jest nastawiony na praktyczne zastosowanie TDD. Część testów będziemy tworzyć wspólnie, ale czekają na Ciebie również zadania domowe. Nie da się nauczyć TDD tylko o tym słuchając, dlatego napiszemy wspólnie ponad 100 testów jednostkowych i integracyjnych, gwarantujących poprawne działanie gry w Makao. Będę dzielić się z Tobą swoim 11-letnim doświadczeniem w programowaniu w PHP oraz pokażę Ci swoje najlepsze triki i strategie na rozwiązywanie skomplikowanych przypadków.

Codzienne wyzwania w TDD

Ponieważ nie żyjemy w próżni, kolejny dział będzie poświęcony pracy z Legacy Codem. Zobaczysz co powoduje, że nikt nie lubi starego kodu i o ile więcej pracy musisz w niego włożyć, by czuć się bezpiecznie. Zobaczysz, że testowanie takiego kodu jest możliwe, kiedy zastosujesz się do kilku prostych metod. Zobaczysz, że 100% pokrycia kodu nie gwarantuje Ci bezpieczeństwa. Wypunktuję Ci najczęstsze błędy początkujących.

Więcej niż testowanie

Na koniec poznasz ciekawe alternatywy i możliwości skutecznego testowania zależności w PHP. Nauczę Cię również naprawiać bugi z użyciem TDD, dzięki czemu nigdy więcej nie będziesz musiał naprawiać dwa razy tego samego. Zobaczysz, że testy stanowią idealną formę dokumentacji oraz znacznie przyspieszają wdrażanie nowych osób do projektu. Uruchomimy stworzoną grę oraz podsunę Ci kilka pomysłów jak możesz ją samodzielnie rozwinąć, by sprawdzić zdobytą wiedzę w praktyce.

Dla kogo jest ten kurs?

Ten kurs powstał dla programistów dobrze znających język PHP, którzy wiedzą jak pisać kod aplikacji, ale nie potrafią pisać testów lub chcą robić to lepiej. Jeżeli widzisz PHP po raz pierwszy, to najpierw nabierz trochę wprawy i wróć do tego materiału za kilka miesięcy. Nie potrzebujesz natomiast żadnej znajomości PHPUnit, czy innych zewnętrznych narzędzi lub bibliotek. To kurs dla Ciebie, jeżeli chcesz tworzyć bezpieczne aplikacje o wysokiej jakości, którym możesz zaufać. Oprócz tego, jeśli chcesz przestać się stresować, że po wdrożeniu znowu coś przestanie działać, lub masz dość powtarzających się błędów na supporcie - to ten kurs jest dla Ciebie.

Kurs Test Driven Development

8 rozdziałów45 lekcji8h 51min

Wstęp do kursu

50min
  • Wprowadzenie4min(zablokowana)
  • Czym jest TDD5min(zablokowana)
  • Konsekwencje braku testów7min(zablokowana)
  • Popularne mity i wymówki13min(zablokowana)
  • Piramida testów7min(zablokowana)
  • Specyfikacja projektu15min(zablokowana)

Workflow w TDD

1h 23min
  • Konfiguracja środowiska12min(zablokowana)
  • Nazewnictwo I konstrukcja14min(zablokowana)
  • Cykl RED - GREEN - REFACTOR14min(zablokowana)
  • Metoda 0, 1, N, Exception14min(zablokowana)
  • Setup klas testowych9min(zablokowana)
  • Refactoring5min(zablokowana)
  • Przygotowanie talii kart14min(zablokowana)

Metody testowania

1h 48min
  • Test interfejsu Iterator8min(zablokowana)
  • Test interfejsu ArrayAccess14min(zablokowana)
  • Testy dla wielu elementów12min(zablokowana)
  • Testowanie funkcji PHP11min(zablokowana)
  • Wstrzykiwanie zależności15min(zablokowana)
  • Testy zależne9min(zablokowana)
  • Testowanie wypisywania14min(zablokowana)
  • Funkcjonalności projektu15min(zablokowana)
  • Game Service Test12min(zablokowana)

Mechanizmy w PHPUnit

1h 19min
  • Stub / Mock / Spy14min(zablokowana)
  • Modelowanie aplikacji14min(zablokowana)
  • Data Provider13min(zablokowana)
  • Wyjątki i kolejność graczy10min(zablokowana)
  • Code coverage15min(zablokowana)
  • Test suites13min(zablokowana)

Implementacja projektu

1h 46min
  • Dwójki i dobieranie kart16min(zablokowana)
  • Czwórki i opuszczenie kolejek14min(zablokowana)
  • Walet - żądanie wartości16min(zablokowana)
  • Damy i Króle17min(zablokowana)
  • Asy - zmiana koloru na stole15min(zablokowana)
  • Wybór pierwszej karty do gry14min(zablokowana)
  • Rozdanie kart dla graczy13min(zablokowana)

Codzienne wyzwania w TDD

47min
  • Mockowanie interfejsów14min(zablokowana)
  • Makao - pierwsza runda6min(zablokowana)
  • Testowanie Legacy Code15min(zablokowana)
  • 100 coverage z bugami11min(zablokowana)

Więcej niż testowanie

54min
  • Mockowanie z Prophecy14min(zablokowana)
  • Mockowanie z Prophecy cz. 211min(zablokowana)
  • Rozwiązywanie bugów w TDD17min(zablokowana)
  • Testy jako dokumentacja11min(zablokowana)

Podsumowanie

6min
  • Co dalej5min(zablokowana)
  • Zakończenie1min(zablokowana)

Ten kurs jest w bazie eduweb

Dostęp do wszystkich kursów z bazy eduweb za 199 zł/mies.

Wykup dostęp do bazy

Autor kursu

Średnia ocen autora: 4,5

Bio

Człowiek wielu pasji i zawodów - Przedsiębiorca, Programista, Lider, Mówca, Trener, Podcaster, a dodatkowo Tata dwóch rozrabiaków poszukujący skutecznych sposobów jak Czuć się, Wygąldać i Żyć #Lepiej.

Od 11 lat w branży IT - od początku związany z PHP. Pracował dla takich marek jak Oferia, Allegro czy BlaBlaCar. Obecnie Team Leader w eMAG.pl, gdzie wdraża Test Driven Development w biurach w Polsce i w Rumunii. Miłośnik ostrych brzmień, skutecznej komunikacji oraz uświadamiania programistów ile kosztuje ich praca.