Book description
W trakcie prezentowanego procesu poznasz podstawy Django, Selenium, git, jQuery i Mock, a także aktualnie stosowanych technologii programowania sieciowego.
Table of contents
- okładka
- tytuł strony
- Prawa autorskie strony
- Pochwały dla książki TDD w praktyce
- Spis treści
- Wprowadzenie
- Przygotowania i założenia
- Podziękowania
-
Część I. Podstawy TDD i Django
- Rozdział 1. Konfiguracja Django za pomocą testu funkcjonalnego
- Rozdział 2. Rozszerzenie testu funkcjonalnego za pomocą modułu unittest
- Rozdział 3. Testowanie prostej strony głównej za pomocą testów jednostkowych
- Rozdział 4. Do czego służą te wszystkie testy?
-
Rozdział 5. Zapis danych wejściowych użytkownika
- Od formularza sieciowego do wykonania żądania POST
- Przetwarzanie żądania POST w serwerze
- Przekazanie zmiennych Pythona do wygenerowania w szablonie
- Do trzech razy sztuka, a później refaktoryzacja
- Django ORM i nasz pierwszy model
- Zapis w bazie danych informacji z żądania POST
- Przekierowanie po wykonaniu żądania POST
- Wygenerowanie elementów w szablonie
- Utworzenie produkcyjnej bazy danych za pomocą polecenia migrate
-
Rozdział 6. Przygotowanie minimalnej działającej wersji witryny
- Gwarancja izolacji testu w testach funkcjonalnych
- Stawiaj na małe projekty
- Implementacja nowego projektu za pomocą TDD
- Iteracja w kierunku nowego projektu
- Testowanie widoków, szablonów i adresów URL za pomocą testu klienta Django
- Kolejny adres URL i widok pozwalający na dodanie elementów listy
- Dostosowanie modeli
- Każda lista powinna mieć własny adres URL
- Jeszcze jeden widok pozwalający na dodanie elementu do istniejącej listy
- Ostatnia refaktoryzacja za pomocą polecenia include
-
Część II. Programowanie sieciowe
-
Rozdział 7. Upiększanie — jak przetestować układ i style?
- Jaką funkcjonalność należy testować w przypadku układu i stylów?
- Upiększanie za pomocą frameworka CSS
- Dziedziczenie szablonu w Django
- Integracja z frameworkiem Bootstrap
- Pliki statyczne w Django
- Użycie komponentów Bootstrap do poprawy wyglądu witryny
- Użycie własnych arkuszy stylów CSS
- Co zostało zatuszowane — polecenie collectstatic i inne katalogi statyczne
- Kilka tematów, które nie zostały omówione
- Rozdział 8. TDD na przykładzie witryny prowizorycznej
- Rozdział 9. Zautomatyzowane wdrożenie za pomocą Fabric
- Rozdział 10. Weryfikacja danych wejściowych i organizacja testu
- Rozdział 11. Prosty formularz
- Rozdział 12. Bardziej skomplikowane formularze
-
Rozdział 13. Zagłębiamy się ostrożnie w JavaScript
- Rozpoczynamy od testów funkcjonalnych
- Konfiguracja prostego silnika wykonywania testów JavaScript
- Użycie jQuery i stałych elementów <div>
- Utworzenie testu jednostkowego JavaScript dla żądanej funkcjonalności
- Testowanie JavaScript w cyklu TDD
- Zdarzenie onload i przestrzenie nazw
- Kilka rozwiązań, które się nie sprawdzają
- Rozdział 14. Wdrożenie nowego kodu
-
Rozdział 7. Upiększanie — jak przetestować układ i style?
-
Część III. Bardziej zaawansowane zagadnienia
-
Rozdział 15. Użycie JavaScript do uwierzytelniania użytkownika, integracji wtyczek i przygotowania imitacji
- Mozilla Persona (BrowserID)
- Kod eksperymentalny, czyli „Spiking”
- Zamiana rozwiązania eksperymentalnego na zwykłe
-
Testy jednostkowe JavaScript obejmujące komponenty zewnętrzne — nasze pierwsze imitacje
- Porządkowanie — katalog plików statycznych dla całej witryny
- Imitacja: kto, co i dlaczego?
- Przestrzenie nazw
- Prosta imitacja dla testów jednostkowych dla naszej funkcji inicjującej
- Bardziej zaawansowane imitacje
- Sprawdzenie wywołania argumentów
- Konfiguracja QUnit i testowanie żądań Ajax
- Więcej zagnieżdżonych wywołań zwrotnych! Testowanie kodu asynchronicznego
-
Rozdział 16. Uwierzytelnianie po stronie serwera i imitacje w Pythonie
- Rzut oka na wersję eksperymentalną widoku logowania
- Imitacje w Pythonie
- Zmiana eksperymentalnej wersji uwierzytelniania na zwykłą — imitacja żądania internetowego
- Minimalny niestandardowy model użytkownika
- Chwila prawdy — czy testy funkcjonalne zostaną zaliczone?
- Zakończenie testu funkcjonalnego, przetestowanie wylogowania
- Rozdział 17. Konfiguracja testu, rejestracja i debugowanie po stronie serwera
-
Rozdział 18. Kończymy „Moje listy” — podejście Outside-In
- Alternatywa, czyli podejście Inside-Out
- Dlaczego preferowane jest podejście Outside-In?
- Test funkcjonalny dla strony Moje listy
- Warstwa zewnętrzna — prezentacja i szablony
- Przejście o jedną warstwę w dół do funkcji widoku (kontroler)
- Kolejne zaliczenie — podejście Outside-In
- Kolejne „wymaganie” z warstwy widoku — nowe listy powinny „zapamiętywać” swego właściciela
- Przejście w dół do warstwy modelu
-
Rozdział 19. Izolacja i „słuchanie” testów
- Powrót do miejsca, w którym podjęliśmy decyzję — warstwa widoku zależy od nieutworzonego jeszcze kodu modelu
- Pierwsza próba użycia imitacji w celu zapewnienia izolacji
- Posłuchaj testu — brzydki test oznacza konieczność refaktoryzacji
- Ponowne utworzenie testów dla widoku, tym razem w pełni odizolowanych
- Przejście w dół do warstwy formularzy
- Wreszcie przechodzimy w dół do warstwy modelu
- Moment prawdy (i ryzyko związane z imitacjami)
- Potraktowanie interakcji między warstwami jak kontraktów
- Jeszcze jeden test
- Porządkowanie, czyli co zachować z pakietu testów zintegrowanych?
- Podsumowanie — testy odizolowane kontra zintegrowane
-
Rozdział 20. Ciągła integracja
- Instalacja serwera Jenkins
- Konfiguracja projektu
- Pierwsza kompilacja
- Konfiguracja ekranu wirtualnego, aby testy funkcjonalne można było wykonywać bez monitora
- Wykonanie zrzutów ekranu
- Najczęstszy problem w Selenium — stan wyścigu
- Wykonanie testów QUnit w Jenkins za pomocą PhantomJS
- Więcej zadań do wykonania za pomocą serwera ciągłej integracji
- Rozdział 21. Token serwisów społecznościowych, wzorzec strony i ćwiczenie dla czytelnika
-
Rozdział 22. Szybkie testy, wolne testy i gorąca lawa
-
Teza — testy jednostkowe są niezwykle szybkie, mają także inne zalety
- Szybsze testy oznaczają szybsze tworzenie kodu
- Uczucie błogostanu
- Wolne testy nie są wykonywane zbyt często, co przekłada się na gorszej jakości kod
- Teraz jest dobrze, ale wraz z upływem czasu testy zintegrowane są wykonywane coraz wolniej
- Nie zabieraj mi tego
- Testy jednostkowe pozwalają przygotować dobry projekt
- Problemy związane z czystymi testami jednostkowymi
- Synteza — jakie mamy oczekiwania wobec testów?
- Rozwiązania architektoniczne
- Podsumowanie
-
Teza — testy jednostkowe są niezwykle szybkie, mają także inne zalety
- Kieruj się Testing Goat!
-
Rozdział 15. Użycie JavaScript do uwierzytelniania użytkownika, integracji wtyczek i przygotowania imitacji
-
Dodatki
- Dodatek A. PythonAnywhere
-
Dodatek B. Widoki oparte na klasach Django
- Ogólne widoki oparte na klasach
- Strona główna jako widok FormView
- Użycie form_valid w celu dostosowania widoku CreateView do naszych potrzeb
- Bardziej złożony widok przeznaczony do obsługi wyświetlania listy i dodawania do niej elementów
- Porównanie starego i nowego widoku
- Najlepsze praktyki w zakresie testów jednostkowych dla ogólnych widoków opartych na klasach?
- Dodatek C. Przygotowanie serwera za pomocą Ansible
- Dodatek D. Testowanie migracji bazy danych
-
Dodatek E. Co dalej?
- Powiadomienia zarówno w witrynie, jak i przez e-mail
- Przejdź na Postgres
- Wykonuj testy względem różnych przeglądarek internetowych
- Testy pod kątem błędów o kodach 404 i 500
- Witryna administracyjna Django
- Sprawdź narzędzie BDD
- Utwórz pewne testy dotyczące bezpieczeństwa
- Sprawdź aplikację pod kątem eleganckiej degradacji
- Testowanie buforowania i wydajności
- Frameworki JavaScript MVC
- Async i WebSocket
- Zacznij używać pakietu PyTest
- Szyfrowanie po stronie klienta
- Miejsce na Twoje propozycje
-
Dodatek F. Ściąga
- Początkowa konfiguracja projektu
- Podstawowy sposób pracy z użyciem technik TDD
- Wykraczamy poza testy w komputerze programisty
- Najlepsze praktyki dotyczące ogólnego testowania
- Najlepsze praktyki dotyczące testów funkcjonalnych i Selenium
- Podejście Outside-In, testy odizolowane kontra zintegrowane oraz imitacje
- Dodatek G. Bibliografia
- Skorowidz
- O autorze
- Kolofon
-
Przypisy
- Wprowadzenie
- Przygotowania i założenia
- Rozdział 1
- Rozdział 2
- Rozdział 3
- Rozdział 4
- Rozdział 5
- Rozdział 6
- Rozdział 7
- Rozdział 8
- Rozdział 9
- Rozdział 10
- Rozdział 11
- Rozdział 12
- Rozdział 13
- Rozdział 15
- Rozdział 16
- Rozdział 17
- Rozdział 19
- Rozdział 20
- Rozdział 21
- Rozdział 22
- Kieruj się Testing Goat!
- Dodatek A
- Dodatek B
- Dodatek C
- Dodatek D
- Dodatek E
- Tylna okładka
Product information
- Title: TDD w praktyce. Niezawodny kod w języku Python
- Author(s):
- Release date: October 2015
- Publisher(s): Helion
- ISBN: 97888328313804
You might also like
book
Python w analizie danych
Wprawny analityk danych potrafi z nich uzyskać wiedzę ułatwiającą podejmowanie trafnych decyzji. Od kilku lat można …
book
Python w analizie danych
Analiza danych stała się samodzielną dyscypliną wiedzy interesującą specjalistów z wielu branż: analityków biznesowych, statystyków, architektów …
book
Zaawansowany Python. Jasne, zwięzłe i efektywne programowanie
Prostota języka Python pozwala szybko osiągnąć produktywność, ale oznacza to również, że często nie wykorzystujemy wszystkiego, …
book
Myśl w języku Python! Nauka programowania
Aby stać się cenionym programistą, trzeba zacząć od bardzo solidnych podstaw. Python jest idealną propozycją dla …