Im później testujesz, tym więcej kosztuje pisanie testów.
Im dłużej żyje błąd, tym droższe jest jego usunięcie.
Prawo malejących zwrotów gwarantuje, że możesz sprawdzić się w zapomnieniu, próbując upewnić się, że nie ma żadnych błędów.
Budda nauczał mądrości środkowej ścieżki. Testy są dobre. Jest coś takiego, jak zbyt wiele dobrego. Kluczem jest możliwość stwierdzenia, kiedy straciłeś równowagę.
Każdy wiersz kodu, który piszesz bez testów, będzie miał znacznie większe koszty dodania testów później niż gdybyś napisał testy przed napisaniem kodu.
Każda linia kodu bez testów będzie znacznie trudniejsza do debugowania lub przepisania.
Każdy test, który napiszesz, zajmie trochę czasu.
Każdy błąd wymaga czasu na naprawę.
Wierni powiedzą ci, abyś nie pisał ani jednego wiersza kodu bez uprzedniego napisania testu zakończonego niepowodzeniem. Test zapewnia zachowanie, którego oczekujesz. Umożliwia szybką zmianę kodu bez obawy o wpływ na resztę systemu, ponieważ test dowodzi, że zachowanie jest takie samo.
Musisz to wszystko porównać z faktem, że testy nie dodają funkcji. Kod produkcyjny dodaje funkcje. A funkcje są tym, co płacą rachunki.
Pragmatycznie dodaję wszystkie testy, z którymi mogę uciec. Ignoruję komentarze na rzecz oglądania testów. Nie ufam nawet kodowi, który robi to, co myślę, że działa. Ufam testom. Ale jestem znany z rzucania okazjonalnego gradu mary i mam szczęście.
Jednak wielu udanych programistów nie robi TDD. To nie znaczy, że nie testują. Po prostu nie obsesyjnie nalegają, aby każda linia kodu miała zautomatyzowany test. Nawet wujek Bob przyznaje, że nie testuje swojego interfejsu użytkownika. Nalega również, abyś wyprowadził całą logikę z interfejsu użytkownika.
Jako metafora futbolu (czyli futbol amerykański) TDD jest dobrą grą naziemną. Testowanie ręczne tylko tam, gdzie piszesz stos kodu i mam nadzieję, że zadziała, jest grą przejściową. W obu przypadkach możesz być dobry. Twoja kariera nie pozwoli na rozegranie play-off, chyba że możesz zrobić jedno i drugie. Nie sprawi, że superowl będzie, dopóki nie dowiesz się, kiedy wybrać każdego z nich. Ale jeśli potrzebujesz szturchnięcia w określonym kierunku: wezwania urzędników częściej mi się zdarzają, kiedy przechodzę.
Jeśli chcesz wypróbować TDD, gorąco polecam ćwiczenie przed próbą zrobienia tego w pracy. TDD wykonane w połowie, na pół serca i na wpół dupsko, to duży powód, dla którego niektórzy go nie szanują. To jak wlewanie jednej szklanki wody do drugiej. Jeśli nie popełnisz tego i zrobisz to szybko i całkowicie, w końcu ściekasz wodą po całym stole.