Słyszeliście to wiele razy od tych, którzy tak naprawdę nie rozumieją wartości testowania. Na początek jestem zwolennikiem zwinności i testowania ...
Niedawno miałem dyskusję na temat przeprowadzania TDD na przepisywaniu produktu, w którym obecny zespół nie ćwiczy testów jednostkowych na żadnym poziomie i prawdopodobnie nigdy nie słyszałem o technice wstrzykiwania zależności lub wzorcach / projektowaniu testów itp. (Nawet nie dostaniemy w celu wyczyszczenia kodu).
Teraz jestem w pełni odpowiedzialny za przepisanie tego produktu i powiedziano mi, że próba wykonania go w stylu TDD sprawi, że będzie to koszmar serwisowy i niemożliwy do utrzymania przez zespół. Co więcej, ponieważ jest to aplikacja typu front-end (nie oparta na sieci), dodawanie testów jest bezcelowe, ponieważ zmiany w dysku biznesowym (zmiany oznaczają oczywiście ulepszenia), testy staną się nieaktualne, a inni programiści projekt w przyszłości nie utrzyma ich i stanie się dla nich większym obciążeniem do naprawy itp.
Rozumiem, że TDD w zespole, który obecnie nie ma doświadczenia w testowaniu, nie brzmi dobrze, ale moim argumentem w tym przypadku jest to, że mogę nauczyć mojej praktyki otaczających mnie ludzi, ale ponadto wiem, że TDD LEPSZY oprogramowanie. Nawet jeśli miałbym produkować oprogramowanie przy użyciu TDD i przekazać wszystkie testy przekazania go zespołowi serwisowemu, to z pewnością byłoby to lepsze podejście niż całkowite niestosowanie TDD?
Zostałem zestrzelony, ponieważ wspominałem o robieniu TDD w większości projektów dla zespołu, który nigdy o tym nie słyszał. Myśl o „interfejsach” i dziwnie wyglądających konstruktorach DI odstrasza ich ...
Czy ktoś może mi pomóc w czymś, co zwykle jest bardzo krótką rozmową o próbie sprzedaży TDD i moim podejściu do ludzi? Zwykle mam bardzo krótkie okno kłótni przed upadkiem na kolana przed firmą / zespołem.