reklama - zainteresowany?

TDD w wykorzystaniem C# 7. Programowanie sterowane testami - Helion

TDD w wykorzystaniem C# 7. Programowanie sterowane testami
Autor: John Callaway, Clayton Hunt
Tytuł oryginału: Practical Test-Driven Development using C# 7: Unleash the power of TDD by implementing real world examples under .NET environment and JavaScript
TÅ‚umaczenie: Jakub Hubisz
ISBN: 978-83-283-5653-5
stron: 413, Format: 168x237, okładka: miękka
Data wydania: 2019-06-01
Księgarnia: Helion

Cena książki: 51,75 zł (poprzednio: 69,00 zł)
Oszczędzasz: 25% (-17,25 zł)

Dodaj do koszyka TDD w wykorzystaniem C# 7. Programowanie sterowane testami

Tagi: C# - Programowanie | Inne - Programowanie | Optymalizacja wydajności | Testowanie oprogramowania

Coraz wiÄ™cej profesjonalnych Å›rodowisk produkcyjnych opiera siÄ™ na oprogramowaniu. Ewentualne bÅ‚Ä™dy w pracy kodu mogÄ… prowadzić do poważnych konsekwencji — dlatego od rozwiÄ…zaÅ„ informatycznych wymaga siÄ™ solidnoÅ›ci i poprawnoÅ›ci. RównoczeÅ›nie oczekuje siÄ™ wydajnego dziaÅ‚ania, skalowalnoÅ›ci i podatnoÅ›ci na modyfikacje, a także możliwoÅ›ci Å‚atwego utrzymania kodu. Aplikacje utworzone zgodnie z paradygmatem TDD sÄ… w wiÄ™kszym stopniu testowalne i zapewniajÄ… wysoki poziom poprawnej, stabilnej pracy. Sprawia to, że coraz wiÄ™cej zespoÅ‚ów programistycznych skÅ‚ania siÄ™ ku TDD, mimo że zautomatyzowane testowanie bywa czasochÅ‚onne, pracochÅ‚onne i dość trudne w implementacji.

To książka przeznaczona dla tych, którzy chcÄ… dogÅ‚Ä™bnie zrozumieć istotÄ™ TDD. Omówiono tu wszystkie aspekty TDD, wÅ‚Ä…czajÄ…c w to podstawy, dziÄ™ki którym Å›rednio zaawansowany programista komfortowo rozpocznie budowÄ™ aplikacji zgodnie z tym paradygmatem. Przedstawiono zasady definiowania i testowania granic, a także pojÄ™cie abstrahowania kodu zewnÄ™trznego. W książce pojawiajÄ… siÄ™ też — wprowadzane stopniowo — bardziej zaawansowane koncepcje, takie jak szpiedzy, imitacje i faÅ‚szywki. Pokazano w niej, w jaki sposób za pomocÄ… TDD można przeksztaÅ‚cić wymagania i historie użytkownika w funkcjonujÄ…cÄ… aplikacjÄ™. Sporo miejsca poÅ›wiÄ™cono pisaniu różnych rodzajów testów, również integracyjnych. Poszczególne koncepcje zostaÅ‚y zilustrowane praktycznymi fragmentami kodu napisanego w C# i JavaScripcie.

W tej książce między innymi:

  • koncepcje programowania sterowanego testami i przygotowanie Å›rodowiska do pracy
  • różne podejÅ›cia do budowania aplikacji i sterowania testami
  • poprawa elastycznoÅ›ci aplikacji i jej podatnoÅ›ci na przyszÅ‚e modyfikacje
  • TDD w warunkach zmieniajÄ…cych siÄ™ wymagaÅ„
  • rozwiÄ…zywanie problemów z kodem zastanym

TDD: tak pracują najlepsi programiści!

Dodaj do koszyka TDD w wykorzystaniem C# 7. Programowanie sterowane testami

 

Osoby które kupowały "TDD w wykorzystaniem C# 7. Programowanie sterowane testami", wybierały także:

  • Programming in C#: Exam 70-483 (MCSD) Guide
  • Data Science with .NET and Polyglot Notebooks. Programmer's guide to data science using ML.NET, OpenAI, and Semantic Kernel
  • Clean Code in C#
  • Learn C# Programming
  • Creating Cross-Platform C# Applications with Uno Platform

Dodaj do koszyka TDD w wykorzystaniem C# 7. Programowanie sterowane testami

Spis treści

TDD z wykorzystaniem C# 7. Programowanie sterowane testami -- spis treści


Przedmowa 9

O autorach 11

O korektorze merytorycznym 12

Wprowadzenie 13

Rozdział 1. Dlaczego TDD jest ważne? 17

  • Najpierw trochÄ™ o nas 18
    • Historia Johna 18
    • Historia Claytona 18
  • Czym jest TDD? 19
  • PodejÅ›cie do TDD 19
    • PodejÅ›cie alternatywne 20
    • Proces 20
    • Po co zawracać sobie tym gÅ‚owÄ™? 21
  • Argumenty przeciwko TDD 21
    • Testowanie wymaga czasu 21
    • Testowanie jest kosztowne 22
    • Testowanie jest trudne 22
    • Nie wiemy jak 22
  • Argumenty za TDD 23
    • Mniejsza pracochÅ‚onność testowania manualnego 23
    • Mniej bÅ‚Ä™dów 23
    • Pewien poziom poprawnoÅ›ci 23
    • Brak strachu przed refaktoryzacjÄ… 24
    • Lepsza architektura 24
    • Szybsza praca 24
  • Różne rodzaje testów 25
    • Testy jednostkowe 25
    • Testy akceptacyjne 25
    • Testy integracyjne 25
    • Testy typu end-to-end 26
    • Liczba testów poszczególnych rodzajów 26
  • Części testu jednostkowego 26
    • Aranżacja 26
    • Akcja 26
    • Asercja 27
  • Wymagania 27
    • Dlaczego wymagania sÄ… ważne? 27
    • Historie użytkownika 27
    • Gherkin 29
  • Nasze pierwsze testy w C# 31
    • Rozwijanie aplikacji z testami 33
  • Nasze pierwsze testy w JavaScripcie 34
  • Dlaczego to ma znaczenie? 37
  • Podsumowanie 37

Rozdział 2. Przygotowanie środowiska testowego w .NET 39

  • Instalacja SDK .NET Core 39
    • Przygotowanie VS Code 40
  • Tworzenie projektu w VS Code 44
  • Przygotowanie Visual Studio Community 45
    • Pobieranie Visual Studio Community 46
    • Instalacja Visual Studio Community 46
  • Przesiadka na xUnit 46
    • Programistyczne kata 47
    • Stworzenie projektu 47
  • Czym jest Speaker Meet? 50
    • Projekt Web API 51
  • Podsumowanie 55

Rozdział 3. Przygotowanie środowiska testowego w JavaScripcie 57

  • Node.js 57
    • Czym jest Node? 58
    • Po co nam Node? 58
    • Instalacja Node 58
    • NPM 61
  • Szybkie wprowadzenie do IDE dedykowanych dla JavaScriptu 62
    • Visual Studio Code 63
    • WebStorm 64
  • Create React App 65
    • Czym jest Create React App? 66
    • Instalacja moduÅ‚u globalnego 66
    • Tworzenie aplikacji za pomocÄ… Reacta 66
    • Mocha i Chai 67
  • Szybkie kata sprawdzajÄ…ce Å›rodowisko 72
    • Wymagania 72
    • Wykonanie 72
    • RozpoczÄ™cie kata 73
  • Podsumowanie 76

Rozdział 4. Co należy wiedzieć przed rozpoczęciem pracy? 77

  • Nietestowalny kod 78
    • Wstrzykiwanie zależnoÅ›ci 78
    • WyodrÄ™bnianie oprogramowania zewnÄ™trznego 79
    • Sobowtóry testowe 79
    • Frameworki imitujÄ…ce 80
    • Zasady SOLID 80
    • Powitanie zależne od czasu 83
    • Kruche testy 84
    • Rodzaje sobowtórów testowych 86
    • PrzykÅ‚ad wielopoziomowy 93
  • Podsumowanie 100

RozdziaÅ‚ 5. Tabula rasa - podejÅ›cie do aplikacji na sposób TDD 101

  • Gdzie zacząć? 101
  • Golenie jaka 102
    • Duży projekt od razu 103
  • Czysta kartka 103
    • Po jednym kawaÅ‚ku 103
    • Minimalny wykonalny produkt 104
    • Inny sposób myÅ›lenia 104
    • Nie bÄ™dziesz tego potrzebować 104
  • MaÅ‚e testy 105
  • Adwokat diabÅ‚a 106
  • Najpierw testy Å›cieżek negatywnych 109
  • Kiedy testowanie jest bolesne 113
    • Symulacja 113
    • Najpierw asercja 114
    • BÄ…dź zorganizowany 114
  • Rozbicie aplikacji Speaker Meet 114
    • Prelegenci 114
    • SpoÅ‚ecznoÅ›ci 115
    • Konferencje 115
    • Wymagania techniczne 115
  • Podsumowanie 115

Rozdział 6. Podejście do problemu 117

  • Zdefiniowanie problemu 117
  • Przetrawienie problemu 118
    • Epiki, funkcje i historie - ojej! 118
    • Problem Speaker Meet 120
  • Architektura heksagonalna wielowarstwowa 126
    • Architektura heksagonalna 127
    • Podstawowe, ale wydajne podziaÅ‚y wielowarstwowe 127
  • Kierunek testowania 130
    • Od tyÅ‚u do przodu 130
    • Od przodu do tyÅ‚u 137
    • Od wewnÄ…trz na zewnÄ…trz 144
  • Podsumowanie 148

Rozdział 7. Sterowanie testami aplikacji C# 149

  • PrzeglÄ…d wymagaÅ„ 149
  • Lista prelegentów 150
    • API 150
    • Testy API 151
    • UsÅ‚uga 156
    • Testy usÅ‚ugi 156
    • Czyste testy 160
    • Repozytorium 161
    • Wykorzystanie fabryki z FakeRepository 163
  • SzczegóÅ‚y prelegentów 165
    • API 165
    • Testy API 165
    • UsÅ‚uga 169
    • Testy usÅ‚ugi 169
    • Czyste testy 172
    • CoÅ› wiÄ™cej z repozytorium 172
    • Dodatkowa praca zwiÄ…zana z fabrykÄ… 173
    • Testowanie przypadków wyjÄ…tkowych 174
  • Podsumowanie 176

RozdziaÅ‚ 8. WyodrÄ™bnianie problemów na zewnÄ…trz 177

  • Odseparowanie problemów 177
    • Gravatar 178
    • Planowanie na przyszÅ‚ość 185
  • Abstrahowanie warstwy danych 185
    • Rozszerzanie wzorca repozytorium 186
    • Zapewnienie funkcji 191
  • Tworzenie generycznego repozytorium 210
    • Krok pierwszy: abstrahowanie interfejsu 210
    • Krok drugi: abstrahowanie klasy konkretnej 211
    • Krok trzeci: zmiana testów, aby wykorzystywaÅ‚y repozytorium generyczne 215
    • Entity Framework 219
    • Wstrzykiwanie zależnoÅ›ci 222
  • Podsumowanie 223

Rozdział 9. Testowanie aplikacji napisanej w JavaScripcie 225

  • Tworzenie aplikacji za pomocÄ… Reacta 226
    • WyodrÄ™bnienie aplikacji 226
    • Konfiguracja bibliotek Mocha, Chai, Enzyme i Sinon 226
  • Plan 228
    • Komponent React 228
    • Rzut oka na testowalność Reduxa 229
    • Testy jednostkowe usÅ‚ugi API 230
  • Lista prelegentów 230
    • Imitacja usÅ‚ugi API 231
    • Akcja pobierania wszystkich prelegentów 235
    • Reduktor dla pobierania wszystkich prelegentów 239
    • Komponent listy prelegentów 240
  • SzczegóÅ‚y prelegenta 246
    • Rozbudowa imitacji usÅ‚ugi API 246
    • Akcja pobierania prelegenta 248
    • Reduktor dla pobierania prelegenta 254
    • Komponent dla szczegóÅ‚ów prelegenta 257
  • Podsumowanie 260

Rozdział 10. Kwestia integracji 261

  • Implementacja rzeczywistej usÅ‚ugi API 261
    • Zamiana imitacji API na prawdziwÄ… usÅ‚ugÄ™ 262
    • Wykorzystanie biblioteki Sinon do imitacji odpowiedzi Ajaxa 264
    • Konfiguracja aplikacji 273
  • Testy integracyjne od poczÄ…tku do koÅ„ca 273
    • Zalety 273
    • Wady 274
    • Ile testów end-to-end trzeba mieć? 274
  • Konfiguracja API 274
    • Projekt dla testów integracyjnych 275
    • Gdzie zacząć? 275
    • Weryfikacja odwoÅ‚aÅ„ repozytorium do bazy 275
    • Weryfikacja, czy usÅ‚uga odwoÅ‚uje siÄ™ do bazy przez repozytorium 278
    • Weryfikacja odwoÅ‚aÅ„ API do usÅ‚ugi 280
  • Podsumowanie 284

Rozdział 11. Zmiany w wymaganiach 285

  • Witaj, Å›wiecie 286
    • Zmiana wymagaÅ„ 286
  • FizzBuzz 287
    • Nowa funkcja 287
  • Aplikacja TODO 289
    • Oznaczanie jako wykonane 289
    • Dodanie testów 289
    • Kod produkcyjny 290
    • Dodanie testów 290
    • Kod produkcyjny 292
  • Zmiany w aplikacji Speaker Meet 293
    • Zmiany po stronie serwera 293
    • Zmiany po stronie interfejsu 295
  • Co teraz? 296
    • Przedwczesna optymalizacja 296
  • Podsumowanie 297

Rozdział 12. Problem z kodem zastanym 299

  • Czym jest kod zastany? 299
    • Dlaczego kod staje siÄ™ zÅ‚y? 300
    • Kiedy projekt staje siÄ™ projektem zastanym? 300
    • Co możemy zrobić, aby zapobiec powstawaniu kodu zastanego? 301
  • Typowe problemy wynikajÄ…ce z kodu zastanego 302
    • Niezamierzone skutki uboczne 302
    • Nadmierna optymalizacja 303
    • Zbyt sprytny kod 304
    • ÅšcisÅ‚e Å‚Ä…czenie z kodem zewnÄ™trznym 304
  • Problemy przeszkadzajÄ…ce w dodawaniu testów 305
    • BezpoÅ›rednia zależność od frameworka lub kodu zewnÄ™trznego 305
    • Prawo Demeter 306
    • Praca w konstruktorze 306
    • Globalny stan 307
    • Metody statyczne 307
    • Duże klasy i funkcje 307
  • Radzenie sobie z problemami wynikajÄ…cymi z kodu zastanego 308
    • Bezpieczna refaktoryzacja 308
    • Pierwsze testy 310
  • IdÄ…c dalej 312
    • Naprawa bÅ‚Ä™dów 313
    • Niebezpieczna refaktoryzacja 313
  • Podsumowanie 313

Rozdział 13. Sprzątanie bałaganu 315

  • Dziedziczenie kodu 315
    • Gra 316
    • ProÅ›ba o zmianÄ™ 316
  • Czasami dostajesz od życia cytryny 317
    • Zaczynamy 317
    • Abstrakcja klasy zewnÄ™trznej 320
    • Niespodziewane dane wsadowe 324
    • Szukanie sensu w szaleÅ„stwie 329
    • KoÅ„cowe upiÄ™kszanie 335
    • Gotowy na ulepszenia 337
  • Podsumowanie 349

Rozdział 14. Pokaż się z najlepszej strony 351

  • Co omówiliÅ›my? 351
  • IdÄ…c naprzód 352
    • TDD to osobisty wybór 352
    • Nie potrzebujesz pozwolenia 353
    • Rozwijaj aplikacje poprzez testy 353
  • Wprowadzanie TDD do Twojego zespoÅ‚u 353
    • Nie zmuszaj nikogo do TDD 354
    • Grywalizacja TDD 354
    • Pokaż zespoÅ‚owi zalety 354
    • Kontroluj rezultaty 355
  • Powrót do Å›wiata jako ekspert TDD 355
    • Poszukaj mentora 355
    • ZostaÅ„ mentorem 356
    • Praktykuj, praktykuj, praktykuj 356
  • Podsumowanie 357

Skorowidz 358

Dodaj do koszyka TDD w wykorzystaniem C# 7. Programowanie sterowane testami

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.