Недавно я попал в команду, которая в значительной степени использует модульное тестирование. Никто не может объяснить мне, почему эта форма тестирования так важна, но они относятся к ней как к закону.
Я понимаю, что идея автоматического тестирования заключается в предотвращении регрессии, но я не вижу, как это может быть проблемой в первую очередь. Модульный, объектно-ориентированный, сжатый код, который хорошо комментируется, не имеет проблемы с регрессией. Если вы построите это правильно в первый раз, а дизайн для неизбежного добавления функций добавит, что произойдет в будущем, вам никогда не понадобятся тесты.
И кроме того, разве не должно выполняться грациозная обработка ошибок и ведение журнала? Зачем тратить недели на хэширование утверждений и модульных тестов, когда вы можете просто убедиться, что все ваши внешние зависимости дважды проверяют их доступность?
Я высокомерен, когда пришел к выводу, что модульное тестирование - это костыль для "плохих" кодовых баз, которые плохо испорчены и построены плохо?
Это серьезный вопрос. Я не могу найти никаких хороших ответов в любом месте, и все, кого я прошу, похоже, считают, что я тролль, если я задаю вопрос о цели автоматического тестирования.
EDIT: Спасибо за ответы, я думаю, что сейчас понимаю. Я вижу, что несколько человек проголосовали за удаление, но я хотел бы поблагодарить людей, которые ответили; это действительно помогло!