Відмова від відповідальності: Я не є анти-блочним тестуванням. Коли люди кажуть TDD, я припускаю, що вони мають на увазі хвороботворну версію, де вони пишуть тести, перш ніж написати код на 80-100% всього коду, який вони пишуть.
Це сприяння. Якщо проблеми з регресією є для вас настільки величезною проблемою, що повноцінний TDD з самого початку здається вартим, написання тестів для кожного останнього написаного вами коду може насправді допомогти вам ігнорувати справжню проблему.
Це допомагає людям ігнорувати справжню проблему. Під час виправлення однієї помилки перетворюється на гру whack-a-mol, де ще два спливаючих вікна вибухає архітектура. Фокус. Зосередьтеся на реальній проблемі. Бачити родимок перед тим, як їх треба побити, - це акуратно, але ви не повинні там бути в першу чергу.
Їсть багато часу. У мене трапляються випадкові помилки. Я не впадаю в стільки, що, здається, варто приєднати кожну нову річ, яку я напишу, з її тестом. Ловіть проблеми, де вони, можливо, трапляться. Обробляйте помилки такі, що їх легко діагностувати. Підтвердити. Випробування в ключових точках перекриття / вузького місця. Але для того, щоб плакати вголос, не випробовуйте кожного останнього геттера і сетера в чомусь, що, мабуть, не повинно було мати таких в першу чергу.
Фокус дизайну: Існує абсолютно ніякий спосіб, навіть хороший розробник не зможе написати найкращий код, який вони могли, коли вони також зосереджуються на тесті. Якщо це здається єдиним способом пристойного дизайну, я рекомендую ознайомитись із вищезгаданим про "зосередження уваги на реальній проблемі".
Невдача в макро-дизайні: база даних коду на моїй теперішній роботі пронизана інтерфейсами, які ніколи не використовуються, і масовими порушеннями основного принципу DRY, які я нарешті почав розуміти, коли зрозумів, що люди пишуть для тестових рамок і тестують в загальний. Тестування не повинно призводити до дурної архітектури. Ні, насправді, немає нічого, що є якось більш масштабним або гідним для підприємства, щоб скопіювати та вставити 20 файлів, а потім лише змінити два з них. Ідея полягає в тому, щоб відокремити проблеми, а не розділити їх на середину. Чітка і безглузда абстракція обійдеться вам дорожче, ніж не матимете 95% покриття.
Це дійсно популярно і багатьом людям дуже, дуже подобається. Якщо це недостатньо підстав для того, щоб хоча б вдруге здогадатися та / або перевірити лайно з будь-якої технології перед прийняттям, навчіться вам параної.