У меня очень старое и плохо написанное приложение на Rails.Есть около 9000 строк кода и ноль тестов.Большая часть кода находится в контроллерах, и, что еще хуже, существует множество внешних API-вызовов, системных вызовов случайных сценариев и т. Д.
Среды разработки также нет, все настроено для работы против производства.базы данных.Ну, не только одна база данных, есть около 10 различных баз данных, так как приложение является своего рода административным бэкэндом для более крупного сайта.
Моя первая идея состояла в том, чтобы получить хотя бы несколько приличное тестовое покрытие для частей, которые яЯ собираюсь работать, но я не могу заставить его работать где-то еще, кроме как на производственных серверах.
Также есть тонны старых драгоценных камней и устаревших предупреждений, но я даже не могу думать об обновлениидрагоценные камни, пока есть тесты.Переписать все вверх не вариант, и мне скоро придется добавлять / изменять материал.
Я не совсем уверен, как подходить к тестированию такого приложения, так как есть так много всегоэто может пойти не так.Что я действительно хотел бы сделать, так это написать несколько интеграционных тестов, а затем начать рефакторинг, но я не могу этого сделать в производственной среде.
Написание модульных тестов с кучей заглушек и макетов не кажется полезным, поскольку код, над которым я собираюсь работать, в основном должен быть переписан с нуля.
Какие шагиЯ могу в основном дублировать огромную сложную производственную среду на моей машине разработки, чтобы я мог делать вещи изолированно?
edit: Немного забавного факта о приложении.Когда я попытался запустить его в первый раз, он продолжал зависать без каких-либо сообщений об ошибках ... пока примерно через полчаса я не обнаружил, что время ожидания для подключения к базе данных (которая была недоступна) было установлено на 90 минут !