Чим пізніше ви тестуєте, тим більше коштує писати тести.
Чим довше живе помилка, тим дорожче її виправити.
Закон зменшення віддачі гарантує, що ви можете перевірити себе у забуття, намагаючись уникнути помилок.
Будда вчив мудрості середнього шляху. Тести хороші. Є така річ, як занадто багато хорошого. Ключ вміє визначати, коли ви перебуваєте в балансі.
Кожен рядок коду, який ви пишете без тестів, матиме значно більші витрати на додавання тестів пізніше, ніж якщо ви написали тести перед написанням коду.
Кожен рядок коду без тестів буде важче налагодити чи переписати.
Кожен тест, який ви пишете, потребуватиме часу.
Кожна помилка потребує часу, щоб виправити її.
Вірні скажуть вам не писати жодного рядка коду, не попередньо написавши невдалий тест. Тест гарантує, що ви отримаєте поведінку, яку ви очікуєте. Це дозволяє швидко змінювати код, не турбуючись про вплив на решту системи, оскільки тест доводить, що поведінка однакова.
Ви повинні зважити все це на тому, що тести не додають функцій. Виробничий код додає функції. А особливості - це те, що платять рахунки.
Прагматично кажучи, я додаю всі тести, з якими можу піти. Я ігнорую коментарі на користь перегляду тестів. Я навіть не довіряю коду робити те, що я думаю, що це робить. Я довіряю тестам. Але я, як відомо, кидав випадкові градські марії та отримував удачу.
Однак багато успішних кодерів не роблять TDD. Це не означає, що вони не тестуються. Вони просто не нав'язливо наполягають на тому, щоб кожен рядок коду мав автоматизований тест проти цього. Навіть дядько Боб зізнається, що не перевіряє свій інтерфейс користувача. Він також наполягає на тому, щоб ви вивели всю логіку з інтерфейсу користувача.
Як метафора футболу (це американський футбол) TDD - це гарна наземна гра. Тестування вручну лише там, де ви пишете купу коду і сподіваєтесь, що це працює - це прохідна гра. Ти можеш бути добрим у будь-якому. Ваша кар'єра не збирається робити плей-офф, якщо ви не зможете зробити і те, і інше. Це не зробить суперкубок, поки ви не дізнаєтесь, коли вибрати кожен з них. Але якщо вам потрібен поштовх у певному напрямку: дзвінки чиновників частіше йдуть проти мене, коли я проїжджаю.
Якщо ви хочете спробувати TDD, я настійно рекомендую вам практикуватись, перш ніж намагатися це робити на роботі. TDD, зроблений на півдорозі, напівсердечний, і напівсердий - велика причина, чому деякі не поважають цього. Це як влити одну склянку води в іншу. Якщо ви не дотримуєтесь цього і зробите це швидко і повністю, ви закінчуєте крапельну воду по всьому столу.