Chcę się nauczyć (i opanować) TDD. Jakie są najlepsze:
- książki
- strony internetowe
- filmy
- lista ćwiczeń
- osobiste słowa mądrości
do nauki, doceniania i używania TDD?
Chcę się nauczyć (i opanować) TDD. Jakie są najlepsze:
do nauki, doceniania i używania TDD?
Odpowiedzi:
Osobiście przekonałem się, że przeczytanie jednego lub dwóch esejów JUnit podkreślających, że „piszesz test przed kodem” wystarczyło, aby zacząć.
Najważniejszą częścią nauki tej technologii jest napisanie DUŻO kodu testowego , ponieważ musisz zmienić niektóre z najbardziej podstawowych sposobów myślenia o pisaniu kodu. Rzeczy jak:
Najlepszym miejscem na rozpoczęcie od małego są procedury użytkowe. Następnym razem potrzebujesz jednego, a potem po prostu zaprojektuj, że najpierw z testami, napisz wiele testów obejmujących wszystkie twoje oficjalne przypadki użycia (w tym, co powinno się stać z przekazanymi wartościami zerowymi itp.), A kiedy wszystkie przypadki użycia zostaną zaimplementowane, powinieneś być w stanie użyć bezpośrednio w kodzie i bądź pewny, że działa zgodnie z oczekiwaniami.
Z mojego doświadczenia wynika również, że dobre testy mogą wykonać dodatkową pracę jako dokumentacja, ponieważ masz bardzo zwięzły kod, który dokładnie mówi, jak zachowuje się kod w różnych sytuacjach, co można łatwo udowodnić, że jest poprawne (zielony pasek). Dzięki uważnym komentarzom nie uzyskasz nic lepszego.
Dla JUnita wersja 4 jest naprawdę fajna.
Moim zdaniem TDD polega bardziej na testowaniu kodu niż na pisaniu testów.
Jasne, że możesz napisać test przed kodowaniem, ale jedynym powodem, dla którego napisano test, jest kodowanie - co nie powstrzyma Cię przed napisaniem trudnego do przetestowania kodu.
Spójrz na to, aby lepiej zrozumieć, co mam na myśli: My Unified Theory of Bugs
Jeśli jesteś zainteresowany tą koncepcją i chcesz dowiedzieć się więcej, po prostu skomentuj - a skieruję cię w kierunku nagranej prezentacji na ten temat od Google.
AKTUALIZACJA:
Jak pisać czysty, testowalny kod
Miško Hevery Presenting (autor: GoogleTechTalks ) W Google w Nowym Jorku sponsorowany przez grupę inżynierii produktywności Google
Oprócz niektórych już wspomnianych książek, mogę polecić Growing Object-Oriented Software Guided by Tests . Nie skończyłem go jeszcze czytać, ale jest to warte przeczytania, w tym historia całego, realistycznego projektu TDD, a nie tylko uproszczonych przykładów kodu.
Przeczytałem dwie książki:
Rozwój oparty na testach: na przykład : Kent Beck i
Ramy testów jednostkowych autorstwa Paula Hamila
Książka Becka jest dobrze oceniana, ale nie zacząłem od testów jednostkowych, dopóki nie przeczytałem „Ram testów jednostkowych”. Robię trochę TDD, ale dodaję również testy do starszego kodu, który muszę utrzymywać (kiedy mogę).
Edycja: Ponadto, gdy już go opanujesz, polecam od razu użyć go w bieżącym projekcie. Dla mnie to kiedy nastąpiła prawdziwa nauka, i myślę, że książka „Unit ramowa Test” było lepsze odniesienie książka na ten cel. (Używałem nunit z C #).
Chociaż nie chodzi przede wszystkim o TDD (choć się z tym wiąże, a także projektowanie pod kątem testowalności), Art of Unit Testing to książka, którą poleciłbym, ponieważ uczy, jak pisać dobre testy.
Mówiąc dokładniej, uczy, jak tworzyć wiarygodne, łatwe w utrzymaniu i czytelne testy. Myślę, że jest to najważniejsza część książki, poza być może podstawami testów jednostkowych i ram izolacji. Oczywiste jest, że jeśli testy jednostkowe staną się bolesne lub zwiększą tarcie w pracy dewelopera, to wszelkie sukcesy lub korzyści z nich ograniczone. Jeśli ktoś zainwestuje czas i wysiłek w stworzenie testów, to powinien być w stanie uzyskać jak największy zwrot z tej inwestycji.