Testy_jednostkowe_swiat_niezawodnych_aplikacji_Wydanie_II_tesjed.pdf
(
2519 KB
)
Pobierz
Tytuł oryginału: The Art of Unit Testing: With Examples in .NET, 2nd Edition
Tłumaczenie: Radosław Meryk
ISBN: 978-83-246-8774-9
Original edition copyright © 2014 by Manning Publications Co.
All rights reserved.
Polish edition copyright © 2014 by HELION SA.
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.
Projekt okładki: Studio Gravite / Olsztyn
Obarek, Pokoński, Pazdrijowski, Zaprucki
Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock Images LLC.
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)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/tesjed
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
S owo wst pne do drugiego wydania 11
S owo wst pne do pierwszego wydania 13
Przedmowa 15
Podzi kowania 17
O tej ksi ce 19
O ilustracji na ok adce 24
C
Z
1.1.
I. Z
ACZYNAMY
25
27
29
Definicja testu jednostkowego krok po kroku 28
1.1.1.
Dlaczego wa ne jest pisanie „dobrych” testów jednostkowych
1.1.2.
Wszyscy piszemy testy jednostkowe (w pewnym sensie) 30
W a ciwo ci dobrego testu jednostkowego 31
Testy integracyjne 31
1.3.1.
Wady niezautomatyzowanych testów integracyjnych
w porównaniu z automatycznymi testami jednostkowymi 33
Co sprawia, e test jednostkowy jest dobry 36
Prosty przyk ad testu jednostkowego 37
Wytwarzanie oprogramowania sterowane testami 40
Trzy zasadnicze umiej tno ci potrzebne
do skutecznego stosowania technik TDD 43
Podsumowanie 44
Rozdzia 1. Podstawowe informacje o testach jednostkowych
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
1.8.
Rozdzia 2. Pierwszy test jednostkowy
2.1.
45
2.2.
2.3.
2.4.
Frameworki testów jednostkowych 46
2.1.1.
Co oferuj frameworki testów jednostkowych 46
2.1.2.
Frameworki xUnit 49
Wprowadzenie w tematyk projektu LogAn 49
Pierwsze kroki z NUnit 49
2.3.1.
Instalacja frameworka NUnit 50
2.3.2.
adowanie rozwi zania 51
2.3.3.
Wykorzystanie atrybutów NUnit w kodzie 54
Piszemy pierwszy test 55
2.4.1.
Klasa Assert 55
2.4.2.
Uruchomienie pierwszego testu za pomoc frameworka NUnit 56
2.4.3.
Dodanie testów pozytywnych 58
2.4.4.
Od czerwonego do zielonego: d enie do spe nienia testów 59
2.4.5.
Styl kodu testów 59
Kup książkę
Poleć książkę
6
2.5.
2.6.
Spis tre ci
Refaktoryzacja w kierunku testów z parametrami 59
Wi cej atrybutów NUnit 62
2.6.1.
Atrybuty Setup i TearDown 62
2.6.2.
Testowanie wyst powania oczekiwanych wyj tków 65
2.6.3.
Ignorowanie testów 67
2.6.4.
Sk adnia fluent frameworka NUnit 68
2.6.5.
Ustawianie kategorii testowych 69
Testowanie wyników metod,
które nie zwracaj warto ci, tylko zmieniaj stan systemu 70
Podsumowanie 74
2.7.
2.8.
C
Z
3.1.
3.2.
3.3.
3.4.
II. P
ODSTAWOWE TECHNIKI
75
77
Wprowadzenie w tematyk namiastek 77
Identyfikacja zale no ci od systemu plików w klasie LogAnalyzer 78
Okre lenie sposobu atwego testowania klasy LogAnalyzer 79
Refaktoryzacja projektu w celu u atwienia testowania 82
3.4.1.
Wyodr bnienie interfejsu umo liwiaj cego
zast pienie istniej cej implementacji 84
3.4.2.
Wstrzykiwanie zale no ci: wstrzykni cie
sztucznej implementacji do testowanej jednostki 86
3.4.3.
Wstrzykni cie sztucznego obiektu na poziomie konstruktora 86
3.4.4.
Symulowanie wyj tków z poziomu sztucznych obiektów 90
3.4.5.
Wstrzykni cie sztucznego obiektu
za pomoc gettera lub settera w a ciwo ci 91
3.4.6.
Wstrzykni cie sztucznego obiektu
bezpo rednio przed wywo aniem metody 93
Odmiany technik refaktoryzacji 100
3.5.1.
Wykorzystanie techniki „wyodr bnij i przes o ”
do tworzenia sztucznych wyników 100
Pokonanie problemu hermetyzacji 102
3.6.1.
Korzystanie ze sk adowych internal oraz atrybutu [InternalsVisibleTo]
3.6.2.
Wykorzystanie atrybutu [Conditional] 103
3.6.3.
Korzystanie z dyrektyw #if i #endif do warunkowej kompilacji 104
Podsumowanie 104
Rozdzia 3. Wykorzystanie namiastek do rozwi zywania zale no ci
3.5.
3.6.
103
3.7.
Rozdzia 4. Testowanie interakcji z wykorzystaniem obiektów-makiet
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
4.8.
Testy bazuj ce na warto ci, testy bazuj ce na stanach a testy integracyjne
Ró nica pomi dzy obiektami-makietami a namiastkami 110
Napisany r cznie prosty przyk ad obiektu-makiety 111
Wykorzystywanie obiektów-makiet razem z namiastkami 114
Jedna makieta na test 118
a cuch sztucznych obiektów: namiastki,
które generuj makiety lub inne namiastki 119
Problemy z pisanymi r cznie makietami i namiastkami 120
Podsumowanie 121
107
108
Kup książkę
Poleć książkę
Spis tre ci
7
Rozdzia 5. Frameworki izolacji
5.1.
5.2.
123
5.3.
5.4.
5.5.
5.6.
5.7.
Dlaczego stosujemy frameworki izolacji? 124
Dynamiczne tworzenie sztucznych obiektów 126
5.2.1.
Wykorzystanie frameworka NSubstitute w testach 126
5.2.2.
Zast pienie sztucznego obiektu
napisanego r cznie obiektem dynamicznym 127
Symulacja sztucznych warto ci 130
5.3.1.
Wprowadzamy do testu makiet razem z namiastk
131
Testowanie dzia a zwi zanych ze zdarzeniami 136
5.4.1.
Testowanie obiektu nas uchuj cego zdarzenia 136
5.4.2.
Testowanie, czy zosta o wyzwolone zdarzenie 138
Wspó czesne frameworki izolacji dla rodowiska .NET 138
Zalety i pu apki frameworków izolacji 140
5.6.1.
Pu apki, których nale y unika
w przypadku korzystania z frameworków izolacji 140
5.6.2.
Nieczytelny kod testu 141
5.6.3.
Weryfikacja niew a ciwych rzeczy 141
5.6.4.
Wi cej ni jedna makieta w te cie 141
5.6.5.
Nadspecyfikacja testów 141
Podsumowanie 142
Rozdzia 6. Bardziej zaawansowane zagadnienia
zwi zane z frameworkami izolacji 145
6.1.
Frameworki ograniczone i nieograniczone 146
6.1.1.
Frameworki ograniczone 146
6.1.2.
Frameworki nieograniczone 146
6.1.3.
Jak dzia aj nieograniczone frameworki bazuj ce na profilerze
Warto dobrych frameworków izolacji 151
W asno ci wspieraj ce d ugowieczno i u yteczno
152
6.3.1.
Imitacje rekurencyjne 152
6.3.2.
Domy lne ignorowanie argumentów 153
6.3.3.
Rozleg e imitacje 153
6.3.4.
Nie cis e zachowania sztucznych obiektów 154
6.3.5.
Nie cis e makiety 154
Antywzorce projektowe frameworków izolacji 155
6.4.1.
Myl ce poj cia 155
6.4.2.
Zarejestruj i odtwórz 156
6.4.3.
Lepkie zachowania 158
6.4.4.
Z o ona sk adnia 158
Podsumowanie 159
148
6.2.
6.3.
6.4.
6.5.
C
Z
7.1.
III. K
OD TESTU
161
163
164
Testy uruchamiane w ramach automatycznych kompilacji
7.1.1.
Anatomia skryptu kompilacji 165
7.1.2.
Inicjowanie kompilacji i integracji 167
Rozdzia 7. Hierarchie testów i ich organizacja
Kup książkę
Poleć książkę
Plik z chomika:
Ksiazki_20
Inne pliki z tego folderu:
Ciagle_dostarczanie_oprogramowania_w_jezyku_Java_Najlepsze_narzedzia_i_praktyki_wdrazania_kodu_ciados.pdf
(2771 KB)
Ciagle_dostarczanie_oprogramowania_Automatyzacja_kompilacji_testowania_i_wdrazania_cidoop.pdf
(1924 KB)
Adaptywny_kod_Zwinne_programowanie_wzorce_projektowe_i_SOLID_ne_zasady_Wydanie_II_adakod.pdf
(953 KB)
TDD_Programowanie_w_Javie_sterowane_testami_tddpro.pdf
(3088 KB)
TDD_Sztuka_tworzenia_dobrego_kodu_tddszv.pdf
(3706 KB)
Inne foldery tego chomika:
Administracja
Afryka
After Effects
Agile - Programowanie
AJAX
Zgłoś jeśli
naruszono regulamin