Tengo una aplicación Rails muy vieja y mal escrita. Hay alrededor de 9000 líneas de código y cero pruebas. La mayoría del código está en controladores, y aún peor, hay toneladas de llamadas API externas, llamadas al sistema a scripts aleatorios, etc.Trabajando en una aplicación de Rails heredada
Tampoco hay un entorno de desarrollo, todo está configurado para funcionar contra las bases de datos de producción. Bueno, no solo una base de datos, hay alrededor de 10 bases de datos diferentes, ya que la aplicación es un tipo de back-end de administración para un sitio más grande.
Mi primera idea fue obtener al menos una cobertura de prueba decente para las partes en las que voy a trabajar, pero no puedo hacer que la cosa funcione en ningún otro lugar que no sea en los servidores de producción.
También hay toneladas de gemas antiguas y advertencias obsoletas, pero ni siquiera puedo pensar en actualizar las gemas hasta que haya pruebas. Reescribir todo el asunto no es una opción, y voy a tener que agregar/cambiar cosas pronto.
No estoy muy seguro de cómo acercarme a probar una aplicación de este tipo, ya que hay tantas cosas que pueden salir mal. Lo que realmente me gustaría hacer es escribir algunas pruebas de integración y luego comenzar a refactorizar, pero no puedo hacerlo en un entorno de producción.
Escribir pruebas de unidades con muchos trozos y burlas no parece tan útil, ya que el código en el que voy a trabajar básicamente tiene que ser reescrito desde cero.
¿Cuáles son algunos de los pasos que puedo dar para duplicar básicamente un entorno de producción enormemente complejo en mi máquina de desarrollo, para poder hacer cosas de forma aislada?
editar: Un pequeño hecho divertido sobre la aplicación. Cuando traté de ejecutarlo por primera vez, continuó congelando sin ningún mensaje de error ... hasta aproximadamente media hora más tarde descubrí que el tiempo de espera para conectarse a una base de datos (que no estaba disponible) estaba configurado para 90 minutos!
Encuentra a una persona que creó esto, toma como rehén a su familia y haz que te ayude (o al menos explica cómo funciona). –
Puede tomar una instantánea de la máquina de producción y separarla en el laboratorio. –