Чи нормально витрачати стільки, якщо не більше, часу на тести, ніж фактичний код?
Так. З деякими застереженнями.
Перш за все, це "нормально" в тому сенсі, що більшість великих магазинів працюють саме так, навіть якщо цей шлях був повністю помилковим і тупим, все-таки факт, що більшість великих магазинів працює таким чином, робить це "нормальним".
Цим я не маю на увазі, що тестувати це неправильно. Я працював у середовищах без тестування, а також у навколишньому середовищі з обсесивно-компульсивним тестуванням, і все одно можу сказати вам, що навіть обсесивно-компульсивне тестування було краще, ніж тестування.
І я ще не займаюся TDD, (хто знає, я можу в майбутньому), але я роблю переважну більшість моїх циклів редагування та відладки за допомогою тестів, а не власне застосування, тому, природно, я багато працюю на моїх тестах, щоб максимально уникнути необхідності запуску фактичної програми.
Однак слід пам'ятати , що існує небезпека зайвих випробувань, а саме в кількості часу витрачається на підтримку тестів. (Я в основному пишу цю відповідь, щоб конкретно вказати на це.)
У передмові Роя Ошерова «Мистецтво тестування одиниць» (Manning, 2009) автор визнає, що брав участь у проекті, який значною мірою не вдався через величезний тягар розвитку, накладений погано розробленими одиничними тестами, які доводилося підтримувати протягом тривалість зусиль з розробки. Отже, якщо ви виявляєте, що витрачаєте занадто багато часу, не роблячи нічого, крім підтримки своїх тестів, це не обов'язково означає, що ви на правильному шляху, оскільки це "нормально". Ваші зусилля по розробці, можливо, перейшли в нездоровий режим, де для врятування проекту може знадобитися радикальне переосмислення вашої методології тестування.