To może być dość głupie pytanie, ponieważ jestem przy pierwszych próbach TDD. Uwielbiałem poczucie pewności i ogólnie lepszą strukturę mojego kodu, ale kiedy zacząłem stosować go na czymś większym niż przykłady klasowych zabawek, napotkałem trudności.
Załóżmy, że piszesz bibliotekę. Wiesz, co musi zrobić, znasz ogólny sposób jego implementacji (pod względem architektury), ale ciągle „odkrywasz”, że musisz wprowadzać zmiany w publicznym interfejsie API podczas pisania kodu. Być może musisz przekształcić tę prywatną metodę w wzorzec strategii (a teraz musisz zdać kpiącą strategię w swoich testach), być może źle dopełniłeś odpowiedzialności tu i tam i podzieliłeś istniejącą klasę.
Kiedy poprawiasz istniejący kod, TDD wydaje się być naprawdę dobrym dopasowaniem, ale kiedy piszesz wszystko od zera, API, dla którego piszesz testy, jest nieco „rozmyte”, chyba że zrobisz duży projekt z góry. Co robisz, gdy masz już 30 testów metody, której zmieniono podpis (i dla tej części, zachowanie)? To wiele testów, które należy zmienić po dodaniu.