inifileを使ってServerspecのテストを書いてみる part1
前回記事で、「phpの設定ファイルであるphp.ini
ファイルのテストは、inifileを使うことをお勧めします。」と述べました。
今日から数回に分けて、その辺を深掘りします。
GitHub - TwP/inifile: Native Ruby package for reading and writing INI files
inifileとは
Rubyパッケージの一種で、php.ini
などセクションとキーで構成された設定ファイル(INI file)をRubyで扱えるようにできるモジュールです。
ここで、セクション・キーとはこんなものを指します。
[section] ; これはセクション key_a=1 ; これはキー key_b=2 ; これはキー
私はServerspecのテストで使うことが多いですが、Serverspecに限らずRubyでINI fileを扱いたい場面であればどこでも活用できると思います。
テストで利用すると何が良いのか
前回記事で説明した通り、単純にshould match
を使っただけでは誤検知する恐れのある、以下のようなケースを回避できます。
- コメント行に、テストしたい文字列が入っている
- 行末・行頭の誤字があるが、それを除くとテストしたい文字列となる
厳密にはshould match
でも正規表現を使えば回避できないことはないです。
ですが、inifileならキーの名前とその値をrubyのObjectクラスとして利用できるので、純粋に設定だけを意識すれば良くなります(コメント行とか余計なことは考えなくても良い)。
そういった意味でも、inifileの方をお勧めします。
今回はここまで
次回以降、inifileのインストール・コードの記述・テストの実行をやっていこうと思います。