時刻を比較したとき、一見すると、何が違っているか分からなくて悩んだので、書く。
describe Item do
let!(:item) { create :item, created_at: 1.day.ago }
it { expect(Item.first.created_at).to eq item.created_at }
end
原因はマイクロ秒
describe Item do
let!(:item) { create :item, created_at: 1.day.ago }
it { expect(Item.first.created_at.usec).to eq item.created_at.usec }
end
DB から取り出したときマイクロ秒は0
になるが、
1.day.ago
の時点では、マイクロ秒は維持されている。
to_s
で渡すと良い。
直接SQLを使うときのように、文字列で渡すと上手くいった。
describe Item do
let!(:item) { create :item, created_at: 1.day.ago.to_s }
it { expect(Item.first.created_at).to eq item.created_at }
it { expect(Item.first.created_at.usec).to eq item.created_at.usec }
end