加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 处理旧版Rails应用程序

发布时间:2020-12-17 04:19:37 所属栏目:百科 来源:网络整理
导读:我有一个非常古老而写得不好的Rails应用程序.大约有9000行代码和零测试.大多数代码都在控制器中,更糟糕的是,有大量的外部API调用,对随机脚本的系统调用等. 也没有开发环境,一切都设置为对生产数据库起作用.不仅仅是一个数据库,还有大约10个不同的数据库,因为
我有一个非常古老而写得不好的Rails应用程序.大约有9000行代码和零测试.大多数代码都在控制器中,更糟糕的是,有大量的外部API调用,对随机脚本的系统调用等.

也没有开发环境,一切都设置为对生产数据库起作用.不仅仅是一个数据库,还有大约10个不同的数据库,因为该应用程序是一个更大的站点的管理后端.

我的第一个想法是至少对我将要处理的部分进行一些不错的测试覆盖,但是我无法在生产服务器上的任何地方工作.

还有大量的旧宝石和不赞成的警告,但我甚至无法考虑升级宝石,直到有测试.重写整个不是一个选项,我将不得不尽快添加/更改内容.

我不太确定如何测试这样的应用程序,因为有太多东西可能出错.我真正想做的是编写一些集成测试,然后开始重构,但我不能在生产环境中这样做.

使用一堆存根和模拟编写单元测试似乎没有用,因为我要处理的代码基本上必须从头开始重写.

我可以采取哪些步骤来基本复制我的开发机器上的巨大复杂生产环境,所以我可以孤立地做一些事情?

编辑:关于应用程序的一个有趣的事实.当我第一次尝试运行它时,它一直没有任何错误消息冻结…直到大约半小时后我发现,连接到数据库(不可用)的超时设置为90分钟!

解决方法

所以这是一个相对较新/罕见的事件,因为rails“LEGACY”应用程序还不太受欢迎(还很年轻).

但是,我遇到了一些关于如何测试(未经测试的)传统rails应用程序的不同着作.我推荐的一些是:

> This slideshare
>实用程序员的“Rails Test Presciptions”第18章.

最终也是最重要的是让一些测试工具正常工作.这意味着让工厂工作,让测试数据库正常运行,让rake运行(即使这意味着剥离破坏的测试).从那时起,您可以根据需要返回并测试模块,以及确保您正在测试添加到项目中的所有新代码.

这是一项非常痛苦的任务,我赞赏你以正确的方式去做.

干杯!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读