テストデータを自由に追加削除できないようなテーブルをプログラム中で使わなければならないときのテスト
例えばシステムログが保存されているテーブルなど、プロジェクト内規約的にもライセンス的にもデータ削除しちゃいけないテーブルがあったりします。で、そのテーブルの情報を元にロジックをごにょごにょしなきゃならないときがあって、そういう場合テストデータをどうしようか、と。そんなことを考えていました。(ちなみにPL/SQLの話です)
案1) そっくりなテーブルを作って、テスト中はそっちのテーブルを参照する。
普通の方法なんですが、本番リリース時にプログラム内のテーブル参照箇所をいじらなければいけないのが何ともはやです。
案2)そういうテーブルを参照するところはViewにしておいて、ViewのFROM句をテスト中はテストテーブルを参照するようにしておく
こっちだとソースコードをいじらずに本番リリースできる分、良さげです。ただ、本番環境のViewと開発環境のViewが異なるということで、後々問題を起こしそうな気がします。バージョン管理が弱めなプロジェクトでは半年ぐらい経った後に問題が起こりそうです。
もっと良い方法ないかなぁ
別スキーマに丸ごとコピーを作って……とかは一身上の都合でできません。案2で行こうかなぁ、とか考えているのですが、こういうのっていろいろ良い方法がどこかにありそうだよなぁ、とか思う今日この頃です。