Testowanie jednostkowe odnosi się do tego , co testujesz , a TDD do kiedy testujesz.
Oba są ortogonalne.
Testowanie jednostkowe oznacza, no cóż, testowanie poszczególnych jednostek zachowania. Indywidualna jednostka zachowania jest najmniejszą możliwą jednostką zachowania, którą można indywidualnie przetestować osobno. (Wiem, że te dwie definicje są okrągłe, ale wydaje się, że sprawdzają się całkiem dobrze w praktyce).
Testy jednostkowe możesz pisać przed napisaniem kodu, po napisaniu kodu lub podczas pisania kodu.
TDD oznacza (znowu, dość oczywiste), że twoje testy napędzają twój rozwój (i twój projekt). Możesz to zrobić za pomocą testów jednostkowych, testów funkcjonalnych i testów akceptacyjnych. Zwykle używasz wszystkich trzech.
Najważniejszą częścią TDD jest środkowy D . Pozwolisz, by testy cię poprowadziły . Testy mówią ci, co robić, co robić, kiedy skończysz. Mówią ci, jaki będzie interfejs API, jaki jest projekt. (Jest to ważne: TDD nie polega przede wszystkim na pisaniu testów. Istnieje wiele projektów, które najpierw piszą testy, ale nie ćwiczą TDD. Pisanie testów jako pierwszy jest po prostu warunkiem koniecznym, aby testy mogły napędzać rozwój.)