Каждый раз, когда вы запускаете свои модульные тесты, вы экономите время, необходимое для ручного тестирования вашего кода.
От 30 до 50% времени, которое вы указываете на необходимость написания тестов, также в значительной степени компенсируется преимуществами лучшего (тестируемого) дизайна программного обеспечения.
Допустим, для написания автоматизированного теста требуется в четыре раза больше времени, чем для его выполнения вручную. Это означает, что в четвертый раз, когда вы запускаете автоматизированный тест, он окупается. Каждый раз, когда вы запускаете автоматический тест после этого, он бесплатный.
Это справедливо независимо от того, является ли тест автоматическим модульным тестом или автоматическим функциональным тестом. Не все функциональные тесты могут быть автоматизированы, но многие из них могут. Кроме того, автоматизированный тест более надежен, чем человек; тест будет выполняться одинаково , каждый раз.
Наличие модульных тестов означает, что вы можете провести рефакторинг базовой реализации метода (для повышения производительности или по другим причинам), и модульные тесты проверят, что функциональные возможности метода не изменились. Это особенно верно для TDD, где модульное тестирование определяет функциональность метода.