Ваши предположения верны.
Выполнение проекта без юнит-тестов (как они делают, не обманывайте себя) может показаться хорошим в первые несколько недель: меньше кода для написания, меньше архитектуры для мышленияо, меньше проблем для беспокойства.И вы можете видеть, что код работает правильно, верно?
Но как только кто-то (кто-то еще или даже оригинальный кодер) возвращается к существующему коду, чтобы изменить его, добавить функцию или простопонять, как это работает и что именно он сделал, все станет намного более проблематичным.И прежде чем вы поймете это, вы проведете ночи, просматривая файлы журналов и отлаживая то, что казалось небольшой функцией, только потому, что она нуждается в интеграции с другим кодом, который никто точно не знает, как он работает.И вы будете ненавидеть свою работу.
Если не стоит тестировать ее (с помощью реальных юнит-тестов), то в первую очередь не стоит писать код.Это знают все, кто пробовал кодировать без модульных тестов и без них.Пожалуйста, пожалуйста, заставьте их передумать.Каждый раз, когда часть непроверенного кода проверяется где-то, щенок ужасно умирает.
Кроме того, я должен сказать, что намного (много) сложнее добавить тесты позже в проект, который был выполнен без тестирования вИмейте в виду, чем строить тестовый и производственный код с самого начала.Тестирование не только помогает вам убедиться, что ваш код работает нормально, оно улучшает качество вашего кода, заставляя вас принимать правильные решения (например, кодирование на интерфейсах, слабая связь, инверсия управления и т. Д.)