Chcę zacząć używać TDD. Jakieś wskazówki dla początkującego? [Zamknięte]

27

Nigdy nie korzystałem z automatycznego mechanizmu testowego w żadnym z moich projektów i wydaje mi się, że bardzo za nim tęsknię. Chcę się poprawić, więc muszę zacząć rozwiązywać niektóre problemy, które tak zaniedbywałem, i wypróbować Gita zamiast utknąć w SVN.

Jaki jest dobry sposób na naukę TDD? Prawdopodobnie będę używać Eclipse do programowania w Javie. Słyszałem o JUnit, ale nie wiem, czy jest coś jeszcze, co powinienem rozważyć.

Mike42
źródło

Odpowiedzi:

15

Możesz zacząć od pracy nad kodowaniem katas . Wybierz algorytm (np. Konwersja liczb dziesiętnych na rzymskie, ocenianie gry w kręgle, gra życia Conwaya itp.) I spróbuj użyć TDD do pracy nad rozwiązaniem.

Struktura rozwiązania będzie prawdopodobnie bardzo prosta (znacznie prostsza niż kod produkcyjny w prawdziwym świecie): jedna klasa dla urządzenia testowego i jedna klasa zawierająca testowany algorytm. Testowana klasa bez zależności jest kolejnym plusem. Możesz użyć prostoty tej konfiguracji, aby szybko zawiesić pętlę refaktora czerwono-zieloną.

To, którego narzędzia używasz do swoich kat TDD, nie ma tak naprawdę znaczenia, o ile trzymasz się zasad. Jednak wtyczka JUnit dla Eclipse jest bardzo łatwa w użyciu, więc jest to doskonały wybór.

azheglov
źródło
8

Zapoznaj się z AAA , przeczytaj o tym, przeczytaj o problemach związanych z rozwojem opartym na testach ( projektowanie pod kątem testowalności w porównaniu z wysokokosztowymi narzędziami, aby projekt nie miał znaczenia). Naucz się wstrzykiwania zależności , aby usuwanie zewnętrznych zależności do testowania stało się prostsze.

Oto dobry przegląd notatek, które wziąłem podczas czytania The Art of Unit Testing

http://imaginarydevelopment.blogspot.com/2010/01/unit-testing-reference.html

Masłów
źródło
1
+1 za zalecenie The Art of Unit Testing. Moim zdaniem jedna z najlepszych książek wyjaśniających testy jednostkowe bez odstraszania czytelników.
Anne Schuessler,
6

Naprawdę nic nie zastąpi po prostu złapanie uprzęży testowej (jak NUnit), przeczytanie literatury i zabrudzenie rąk.

Jak powiedział kiedyś James T. Kirk: „Uczymy się poprzez działanie”.

Chris Holmes
źródło
4

Bardzo polecam tę książkę: Rosnące oprogramowanie obiektowe oparte na testach

Ma sprawdzony przykład przeglądający książkę i zapewnia bardzo spójny obraz tego, kiedy należy stworzyć test, co powinny one zawierać, a także jak powinny zostać skonstruowane i zrefaktoryzowane.

Flamingpenguin
źródło
-3

Sprawdź ten link . To blog Boba Martina na temat TDD - doskonałe rzeczy, które pomogą ci zrozumieć (lub dać ci inną perspektywę) myślenia w TDD.

ratkok
źródło
2
Wiersz tego bloga, słowami wuja Boba, brzmi „Pisma na temat czystego kodu, projektowania i wszystkich innych programów”. Treść bloga jest znacznie szersza niż „wszelkie wskazówki OP dla początkujących [w TDD]”.
azheglov,