TDD_w_praktyce_Niezawodny_kod_w_jezyku_Python_tddwpr.pdf
(
977 KB
)
Pobierz
Tytuł oryginału: Test-Driven Development with Python
Tłumaczenie: Robert Górczyński
ISBN: 978-83-283-1377-4
© 2015 Helion S.A.
Authorized Polish translation of the English edition of Test-Driven Development with Python, ISBN:
9781449364823 © 2014 Harry Percival.
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all
rights to publish and sell the same.
Polish edition copyright © 2015 by Helion S.A.
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane
z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION
nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/tddwpr.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/tddwpr
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
•
Kup książkę
•
Poleć książkę
•
Oceń książkę
•
Księgarnia internetowa
•
Lubię to! » Nasza społeczność
Spis tre ci
Wprowadzenie ............................................................................................................ 13
Przygotowania i za o enia ......................................................................................... 19
Podzi kowania ............................................................................................................25
I Podstawy TDD i Django ..........................................................................27
1. Konfiguracja Django za pomoc testu funkcjonalnego .............................................29
S uchaj Testing Goat! Nie rób nic, dopóki nie przygotujesz testu ............................................. 29
Rozpocz cie pracy z frameworkiem Django ................................................................................. 32
Utworzenie repozytorium Git .......................................................................................................... 33
2. Rozszerzenie testu funkcjonalnego za pomoc modu u unittest ............................. 37
U ycie testu funkcjonalnego do przygotowania minimalnej aplikacji ..................................... 37
Modu unittest ze standardowej biblioteki Pythona .................................................................... 40
Ukryte oczekiwanie ............................................................................................................................ 42
Przekazanie plików do repozytorium ............................................................................................ 42
3. Testowanie prostej strony g ównej za pomoc testów jednostkowych ..................45
Nasza pierwsza aplikacja Django i test jednostkowy .................................................................. 46
Testy jednostkowe i ró nice dziel ce je od testów funkcjonalnych .......................................... 46
Testy jednostkowe w Django ........................................................................................................... 47
MVC w Django, adresy URL i funkcje widoku ............................................................................ 48
Wreszcie zaczynamy tworzy kod aplikacji .................................................................................. 49
urls.py ................................................................................................................................................... 51
Testy jednostkowe widoku ............................................................................................................... 53
Cykl test jednostkowy — tworzenie kodu ..............................................................................54
4. Do czego s u
te wszystkie testy? ............................................................................ 57
Programowanie przypomina wyci ganie wiadrem wody ze studni ........................................ 58
U ycie Selenium do testowania interakcji u ytkownika ............................................................ 59
Regu a „nie testuj sta ych” i szablony na ratunek ........................................................................ 62
Refaktoryzacja w celu u ycia szablonu ....................................................................................62
5
Kup książkę
Poleć książkę
Refaktoryzacja ..................................................................................................................................... 65
Nieco wi cej o stronie g ównej ......................................................................................................... 67
Przypomnienie — proces TDD ........................................................................................................ 68
5. Zapis danych wej ciowych u ytkownika ................................................................... 73
Od formularza sieciowego do wykonania dania POST .......................................................... 73
Przetwarzanie dania POST w serwerze ..................................................................................... 76
Przekazanie zmiennych Pythona do wygenerowania w szablonie .......................................... 77
Do trzech razy sztuka, a pó niej refaktoryzacja ........................................................................... 81
Django ORM i nasz pierwszy model .............................................................................................. 82
Pierwsza migracja bazy danych ................................................................................................84
Zdumiewaj co du y post p w te cie ........................................................................................85
Nowa kolumna oznacza now migracj ..................................................................................85
Zapis w bazie danych informacji z dania POST ....................................................................... 86
Przekierowanie po wykonaniu dania POST .............................................................................. 89
Poszczególne testy powinny testowa pojedyncze rzeczy ...................................................89
Wygenerowanie elementów w szablonie ....................................................................................... 90
Utworzenie produkcyjnej bazy danych za pomoc polecenia migrate .................................... 92
6. Przygotowanie minimalnej dzia aj cej wersji witryny ............................................. 97
Gwarancja izolacji testu w testach funkcjonalnych ...................................................................... 97
Wykonanie tylko testów jednostkowych ...............................................................................100
Stawiaj na ma e projekty ................................................................................................................. 101
YAGNI! ........................................................................................................................................102
REST ..............................................................................................................................................102
Implementacja nowego projektu za pomoc TDD ..................................................................... 103
Iteracja w kierunku nowego projektu ........................................................................................... 105
Testowanie widoków, szablonów i adresów URL za pomoc testu klienta Django ........... 107
Nowa klasa testowa ...................................................................................................................107
Nowy adres URL ........................................................................................................................108
Nowa funkcja widoku ...............................................................................................................108
Oddzielny szablon do wy wietlania list ................................................................................109
Kolejny adres URL i widok pozwalaj cy na dodanie elementów listy .................................. 112
Klasa testowa dla operacji tworzenia nowej listy ................................................................112
Adres URL i widok przeznaczony do tworzenia nowej listy ............................................113
Usuni cie zb dnego kodu i dalsze testy ................................................................................114
Wskazanie formularzy w nowym adresie URL ...................................................................115
Dostosowanie modeli ....................................................................................................................... 116
Zwi zek klucza zewn trznego ................................................................................................117
Dostosowanie reszty wiata do naszych nowych modeli ..................................................118
Ka da lista powinna mie w asny adres URL ............................................................................. 120
Przechwytywanie parametrów z adresów URL ...................................................................121
Dostosowanie new_list do nowego wiata ............................................................................122
Jeszcze jeden widok pozwalaj cy na dodanie elementu do istniej cej listy .......................... 123
Uwaga na ar oczne wyra enia regularne! ...........................................................................124
Ostatni nowy adres URL ...........................................................................................................124
6
Spis tre ci
Kup książkę
Poleć książkę
Ostatni nowy widok ..................................................................................................................125
Jak mo na u y adresu URL w formularzu? ........................................................................126
Ostatnia refaktoryzacja za pomoc polecenia include ............................................................... 128
II Programowanie sieciowe ..................................................................... 131
7. Upi kszanie — jak przetestowa uk ad i style? ....................................................... 133
Jak funkcjonalno nale y testowa w przypadku uk adu i stylów? ................................... 133
Upi kszanie za pomoc frameworka CSS .................................................................................... 136
Dziedziczenie szablonu w Django ................................................................................................. 137
Integracja z frameworkiem Bootstrap ........................................................................................... 139
Wiersze i kolumny .....................................................................................................................139
Pliki statyczne w Django ................................................................................................................. 140
Zaczynamy u ywa klasy StaticLiveServerCase ..................................................................141
U ycie komponentów Bootstrap do poprawy wygl du witryny ............................................ 142
Jumbotron ....................................................................................................................................142
Ogromne pola danych wej ciowych .......................................................................................143
Nadanie stylu tabeli ...................................................................................................................143
U ycie w asnych arkuszy stylów CSS .......................................................................................... 143
Co zosta o zatuszowane — polecenie collectstatic i inne katalogi statyczne ........................ 144
Kilka tematów, które nie zosta y omówione ............................................................................... 147
8. TDD na przyk adzie witryny prowizorycznej ........................................................... 149
Techniki TDD i niebezpiecze stwa zwi zane z wdro eniem .................................................. 150
Jak zwykle zaczynamy od testu ..................................................................................................... 151
Pobranie nazwy domeny ................................................................................................................. 153
R czne przygotowanie serwera do hostingu naszej witryny ................................................... 153
Wybór hostingu dla witryny ....................................................................................................154
Uruchomienie serwera ..............................................................................................................154
Konto u ytkownika, SSH i uprawnienia ...............................................................................155
Instalacja Nginx ..........................................................................................................................155
Konfiguracja domen dla witryn prowizorycznej i rzeczywistej ........................................156
U ycie testów funkcjonalnych do potwierdzenia dzia ania domeny i serwera Nginx ....157
R czne wdro enie kodu .................................................................................................................. 157
Dostosowanie po o enia bazy danych ...................................................................................158
Utworzenie virtualenv ..............................................................................................................159
Prosta konfiguracja Nginx ........................................................................................................162
Utworzenie bazy danych za pomoc polecenia migrate ....................................................164
Wdro enie w rodowisku produkcyjnym ................................................................................... 164
U ycie Gunicorn .........................................................................................................................164
U ycie Nginx do obs ugi plików statycznych ......................................................................165
U ycie gniazd systemu Unix ...................................................................................................166
Przypisanie opcji DEBUG warto ci False i ustawienie ALLOWED_HOSTS ..................167
U ycie Upstart do uruchamiania Gunicorn wraz z systemem ..........................................168
Zachowanie wprowadzonych zmian — dodanie Gunicorn do pliku requirements.txt ....168
Automatyzacja ................................................................................................................................... 169
Zachowanie informacji o post pie ..........................................................................................172
Spis tre ci
7
Kup książkę
Poleć książkę
Plik z chomika:
Ksiazki_20
Inne pliki z tego folderu:
Algorytmy_Data_Science_Siedmiodniowy_przewodnik_Wydanie_II_aldas2.pdf
(4601 KB)
Deep_Learning_Praca_z_jezykiem_Python_i_biblioteka_Keras_delepy.pdf
(4353 KB)
Algorytmy_dla_bystrzakow_algoby.pdf
(2441 KB)
Automatyzacja_nudnych_zadan_z_Pythonem_Nauka_programowania_autopy.pdf
(1606 KB)
Czysty_kod_w_Pythonie_czykop.pdf
(2698 KB)
Inne foldery tego chomika:
3ds max
Access
Acrobat
After Effects
Agile - Programowanie
Zgłoś jeśli
naruszono regulamin