読者です 読者をやめる 読者になる 読者になる

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のインストール・コードの記述・テストの実行をやっていこうと思います。