Я большой поклонник модульного тестирования, хотя мои тесты в настоящее время не обеспечивают полного охвата ... в основном потому, что я работаю над веб-сайтом, и большая часть моего кода просто берет данные из базы данных, манипулирует ими и выплевывает. Код манипуляции, как правило, хорошо проверен, но проверять код базы данных очень сложно.
При этом я могу указать на случай, когда модульные тесты сэкономили мне недели работы ...
Я работал над небольшим проектом (4-6 разработчиков) некоторое время назад, и после нескольких месяцев работы мы достигли состояния, близкого к завершению. В этот момент ответственные за продукт люди решили, что вместо того, чтобы хранить даты (и создавать отчеты с их использованием) в GMT, они хотели все в EST. Учитывая, что продукт был создан для обработки больших объемов данных / журналов и генерирования информации об этих данных на основе временных периодов, это было довольно серьезное изменение.
В течение следующих нескольких дней команда разработчиков пришла и изменила все, чтобы иметь дело с метками времени EST. Что бы заняло у нас недели, если бы у нас не было таких обширных автоматизированных тестов, мы заняли всего 3 дня, что позволило нам соблюсти агрессивный график. Мы смогли перейти к коду и начать изменять все, что нам нужно; модульные тесты дают нам смелость, зная, что система будет быстро жаловаться, если мы что-нибудь сломаем. До сегодняшнего дня я использую этот опыт в качестве примера того, как вы никогда не сможете по-настоящему понять преимущества автоматизированного тестирования, пока оно не спасет вас ... и это, безусловно, сделало это для моей команды.