[Ruby on Rails]Date.todayとかを使っている箇所をテストする方法
日時によって表示項目を制御したりする場合に、よくDate.todayとかDateTime.nowとかを使ったりすると思うが
このシステム日時を取得している場所のテストをうまく実行したい場合に役に立つプラグインが
です。
ようは、Date.todayとかで返ってくる日時を固定してしまうというプラグイン。
インストールは
Rails2.*系であれば、config/environments/test.rbあたりに
[text]config.gem 'timecop’, :version => '= 0.3.4′[/text]
を追加し、rake gems:installを実行
テストケースでは
たとえば、2011年10月04日に固定したい場合には
[ruby]Timecop.travel(Date.new(2011,10,4))[/ruby]
とすると、これ以降、Date.todayは2011年10月04日を返すようになる。
日付の固定を解除したい場合は
[ruby]Timecop.return[/ruby]
を実行する