rails-erdに~/.erdconfigという設定ファイルを作ろうとしたときにrubygemsのGem::ConfigFile
の実装とテストが参考になった。
特に参考になったのはテスト用の設定ファイルの準備。
テストしたいときには自分で使ってる実際の~/.hogerc
を読み込みたくない。ではどうするかというと、設定ファイルのパス(~/.hogerc
)はベタ書きを避けて定数で書いておき、テストを実行する前にremove_const
とconst_set
でそれをテスト用のファイルに上書きするのである。
そしてほかのテスト項目ではデフォルトの設定を前提としていることもあるから、
- test_helperやspec_helperなどで、全体としてはデフォルトの設定が有効になるように設定ファイルのパスを上書きしておき、
- 設定ファイルによる挙動の変化を見る部分では、setupやbeforeでさらに個別の設定ファイルへと書き換えを行う
という2段構えで上書きをすることになる。
ちなみにクラス変数とかクラスのインスタンス変数でもいいんだけど、そんな書き換えるようなものでもないからここでは定数とした。
あと、rubygemsはおざなりになりがちなWindowsへの対応もキッチリやっているので、そこらへんも参考になる。