처럼 팩토리가 만들어 질 경우에 대한 콜백을 사용했다 밝혀졌습니다. 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
또는 여러 공장처럼 사양이 도우미를 사용할 수있는이
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
등 뭔가를 test_helper를 만들 수 있습니다 TimeCop 보석
을 나는이 오래 전 알고있다! 이 답변들 중 어떤 것이 도움이 되었습니까? 비슷한 문제가 있습니다. – jordancooperman
제가 사용했던 대답을 선택했습니다. –