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

RSpecでTime.nowを起点にしたテストを書く時Timecopを使うと便利かも

Ruby RSpec

たとえば現在時刻から3日前だったらこうなるべきみたいのをテストを書いてて
処理は3.days.agoとかだった場合に普通に書いてあると日数がたつとテストが通らなくなる。

そんな時は、Timecopでテストの時は時間を指定してあげればよいのかな。

describe 'hoge' do
  before do
    Timecop.freeze(Time.local(2012,11,25,12,0,0))
  end

  subject { うにゃうにゃ }
  context '3 days ago' do
    it 'うにゃうにゃ'
  end

  after do
    Timecop.return
  end
end

忘れないうちにメモを書いておくのでした。