私は非常に古い、よく書かれていないRailsアプリケーションを持っています。約9000行のコードとゼロテストがあります。コードの大部分はコントローラ内にあり、さらに悪いことに、多数の外部APIコール、ランダムスクリプトへのシステムコールなどがあります。従来のRailsアプリケーションでの作業
また、開発環境もなく、本番データベースに対して機能するように設定されています。 1つのデータベースだけでなく、10の異なるデータベースがあります。これは、大きなサイトの管理バックエンドのようなものです。
私の最初のアイデアは、私が取り組む予定の部品については、少なくとも多少のテストカバレッジを得ることでしたが、プロダクションサーバー以外の場所では動作させることができませんでした。
また古い宝石と廃止された警告がありますが、テストがあるまで宝石のアップグレードについて考えることさえできません。全体の書き直しはオプションではなく、すぐに追加/変更する必要があります。
私は本当にそのようなアプリケーションのテストにアプローチする方法はわかりません。間違ってしまうほどのものがあるからです。私が本当にやりたいことは、いくつかの統合テストを書いてリファクタリングを開始することですが、実稼働環境ではこれを行うことはできません。
スタブとモックの束を使った単体テストの作成は役に立ちません。基本的に作業するコードは最初から書き直す必要があるためです。
基本的に巨大な複雑な制作環境を自分の開発マシンに複製するために取ることができるいくつかのステップは何ですか?
編集:アプリに関する少し楽しい事実。私が最初に実行しようとしたとき、エラーメッセージなしでフリーズし続けました。約30分後に、データベースに接続するためのタイムアウトが利用可能に設定されていました。 90分!
これを作成した人を見つけ、彼の家族を人質に取ると、彼は(または少なくともものがどのように動作するかを説明)のお手伝いをします。 –
プロダクションマシンのスナップショットを撮り、ラボで引き裂くことができます。 –