Так ви це чули багато разів від тих, хто не по-справжньому розуміє цінностей тестування. Щоб почати все, я є послідовником Agile і Testing ...
Нещодавно я обговорював виконання TDD на переписуванні продукту, де нинішня команда не практикує одиничне тестування на будь-якому рівні, і, ймовірно, ніколи не чула про техніку впорскування залежностей або тестові зразки / дизайн тощо (ми навіть не отримаємо для очищення коду).
Тепер я повністю відповідальний за перезапис цього продукту, і мені кажуть, що спроби його в моді TDD будуть просто робити кошмаром технічного обслуговування та неможливим для підтримки команди. Крім того, оскільки це додаткова програма (не веб-базована), додавання тестів є безглуздим, оскільки бізнес-драйв змінюється (зміна означає, що це, звичайно, поліпшення), тести стануть застарілими, інші розробники, які приходять на проект у майбутньому не підтримуватиме їх і стане більше тягарем для їх виправлення тощо.
Я можу зрозуміти, що TDD в команді, яка наразі не має жодного досвіду тестування, не звучить добре, але мій аргумент у цьому випадку полягає в тому, що я можу навчити свою практику для тих, хто мене оточує, але ще більше, я знаю, що TDD робить краще програмне забезпечення. Навіть якби я розробляв програмне забезпечення за допомогою TDD і відкидав усі тести на передачу його команді технічного обслуговування, це, безумовно, буде кращим підходом, ніж взагалі не використовувати TDD?
Мене збили, як я вже говорив, що робив TDD для більшості проектів для команди, яка ніколи про це не чула. Думка про "інтерфейси" та дивно виглядаючі конструктори DI відлякує їх ...
Чи хтось, будь ласка, допоможе мені в тому, що зазвичай є дуже короткою розмовою про спробу продати TDD і мій підхід до людей? У мене, як правило, дуже короткий аргумент, перш ніж впасти на коліна до компанії / команди.