Niektórzy powiedzą inaczej, ale sugerowałbym oddzielenie TDD i testów jednostkowych. TDD jest dość mentalną zmianą i początkowo wydaje się, że testy jednostkowe wymagają czasu. Jeśli uznasz je za jeden przedmiot, istnieje ryzyko, że nie zobaczysz wystarczającej ilości korzyści od razu i pojawi się pokusa, aby po prostu porzucić TDD i testowanie jednostek.
Pierwszą rzeczą jest napisanie testów jednostkowych. Na początku nie muszą być idealne. Po prostu naucz się, jak testować małe jednostki kodu i jak używać kpiny do izolowania komponentów.
Jest to największy czasochłonny, ale jak dotąd największy zwrot. Gdy zauważysz, że nie musisz już przeglądać 14 stron internetowych, aby przejść do strony, którą chcesz przetestować, będziesz wiedział, o czym mówię.
Dla mnie najważniejszym momentem Eureki była aplikacja dla systemu Windows, w której próbowałem przetestować wyrażenie regularne, które wymagało wypełnienia dwóch formularzy, zanim do niego dotarłem. Zainstalowałem NUnit i napisałem test dotyczący tej metody i zobaczyłem, jak szybko zaoszczędziłem godziny testowania. Następnie dodałem więcej testów, aby poradzić sobie z przypadkowymi przypadkami. I tak dalej.
Następnie naucz się dobrze pisać testy jednostkowe. Naucz się równowagi między kruchymi testami, które są szybkie do napisania i pisania wielu wielu testów indywidualnych. To jest dość łatwe. Lekcja polega na tym, że idealnie każdy test testuje tylko jedną rzecz, ale szybko dowiadujesz się, jak długo to trwa, więc zaczynasz pochylać się trochę nad regułą, dopóki nie napiszesz testu, który psuje się przy każdej zmianie kodu, a następnie wracasz do właściwej równowagi (który jest bliższy temu pierwszemu niż drugiemu).
TDD jest, jak powiedziałem, główną zmianą mentalną w sposobie pracy. Jednak i tak nie poświęci dużo czasu na proces programowania, gdy już piszesz testy. I obiecuję, że zobaczysz, że Twój styl kodowania poprawia się na twoich oczach. A raczej, jeśli tego nie upuścisz, to nie jest dla ciebie.
Ostatnią rzeczą do zapamiętania jest to, że TDD nie ogranicza się do testów jednostkowych. Projekt oparty na testach akceptacyjnych jest w każdym razie częścią TDD. Kolejny dobry powód, aby nie mieszać ich w myślach.