のように、工場が作成されたときのコールバックを使用していたが判明します。これはActiveRecordのデフォルト動作です。幸いにも、チャンスはカスタムタイムスタンプを持つモデルを作成した後、あなたは背中に自動タイムスタンプを有効にしたいと思うことをしている
LivingArrangement.record_timestamps = false
で無効にすることができます。しかし、あなたのユニットテストの多くの場所でそれをオフにすることはかなり面倒です。あなたは他の一般的なアプローチを用いることであろう
without_timestamping_of LivingArrangement, User do
create(:living_arrangement, :created_at => 1.week.ago, :updated_at => 1.week.ago)
create(:user, :created_at => 1.week.ago, :updated_at => 1.week.ago)
end
この
without_timestamping_of LivingArrangement do
create(:living_arrangement, :created_at => 1.week.ago, :updated_at => 1.week.ago)
end
または複数の工場のようなスペックはあなたにこのヘルパーを使用することができtest_helper、このような何か
def without_timestamping_of(*klasses)
if block_given?
klasses.delete_if { |klass| !klass.record_timestamps }
klasses.each { |klass| klass.record_timestamps = false }
begin
yield
ensure
klasses.each { |klass| klass.record_timestamps = true }
end
end
end
ザ・を作成することができますTimeCop gem
を、私は、これは長い時間前だった知っています!これらの回答のいずれかが役に立ったのですか?私は同様の問題に遭遇しています。 – jordancooperman
私が使用した答えを選択しました。 –