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

テスト時の日付を固定する

Timecopを使いました。

   describe "2012年7月31日だった場合" do
      before do
        Timecop.travel(Date.new(2012,7,31))
      end
      it "4月以降なので 2013を返すこと" do
        helper.hogehoge.should == 2013
      end
      after do
         Timecop.return
      end
    end

お手軽。

追記: @さんから、Timecop.freezeは問題をおこすこともあるので、よほどの理由がない限りTimecop.travelを使ったほうがいいよ、と教えていただきましたので、コードを修正しました。ありがとうございます。