Jak*_*old 7 ruby testing legacy refactoring ruby-on-rails
我有一个非常古老而写得不好的Rails应用程序.大约有9000行代码和零测试.大多数代码都在控制器中,更糟糕的是,有大量的外部API调用,对随机脚本的系统调用等.
也没有开发环境,所有东西都设置为对生产数据库起作用.不仅仅是一个数据库,还有大约10个不同的数据库,因为该应用程序是一个更大的站点的管理后端.
我的第一个想法是围绕我将要处理的部分至少获得一些不错的测试覆盖率,但是我无法在生产服务器上的其他地方工作.
还有大量的旧宝石和不赞成的警告,但我甚至无法考虑升级宝石,直到有测试.重写整个不是一个选择,我将不得不尽快添加/更改东西.
我不太确定如何测试这样的应用程序,因为有太多东西可能出错.我真正想做的是编写一些集成测试,然后开始重构,但我不能在生产环境中这样做.
使用一堆存根和模拟编写单元测试似乎没有用,因为我要处理的代码基本上必须从头开始重写.
我可以采取哪些步骤来基本复制我的开发机器上的巨大复杂生产环境,所以我可以孤立地做一些事情?
编辑:关于应用程序的一个有趣的事实.当我试图运行它的第一次,它一直在没有任何错误消息冻结......直到大约一个半小时后,我发现,那超时连接到数据库(这是不可用)设置为90分钟!