[Ruby on Rails]バッチ処理のrbをテストする方法

バッチ処理として書いたrbファイルをテストする場合

テストケース内で

[ruby]system("ruby バッチファイル")[/ruby]

としても良いが

たとえばTimecopで日付を固定してテストする場合には具合が良くない。

バッチのプロセスが別プロセスで動くため、Timecopの設定がバッチに反映されない。

なので

systemで呼び出している部分を

[ruby]load "バッチファイル"[/ruby]

というように、loadに変えると、そのバッチ処理が都度ロードされるので

テストを実行しているプロセス内でバッチファイルが実行される形になる。

rspecでコントローラのテストを書くときのTips

モジュールがインクルードされているか

隠したいパラメータがフィルターされているか

Before filters

レスポンスコード

authenticity_tokenのチェックをスタブでtrueにする

Filtered parameters