我有一个rails(3.2)应用程序使用Mongoid使用MongoDB。
我尝试测试记录会在我进行更改时更新它的updated_at字段,这很简单:
it "Should modify updated_at when we make changes to a record" do
record = create(:record)
previous_updated_at = record.updated_at
record.touch
expect(record.updated_at).not_to eq(previous_updated_at)
end
测试不会通过,除非我添加睡眠(1)。类似的东西:
it "Should modify updated_at when we make changes to a record" do
record = create(:record)
previous_updated_at = record.updated_at
sleep(1)
record.touch
expect(record.updated_at).not_to eq(previous_updated_at)
end
我确定有一个解决方法。请注意,您可以在https://gist.github.com/eqbal/1a4d96a0e761eb0faf22查看我的spec_helper.rb。
提前致谢
答案 0 :(得分:0)
我不得不将Mongoid gem升级到版本"〜> 3.0.1&#34 ;.
然后我必须设置数据库会话选项consistency: :strong, safe: true
,这两个选项都不是默认设置,以确保您可以随时立即回读使用Mongoid编写的数据。