Ich möchte Testdaten für eine Anwendung erstellen, und es gibt eine Menge von time_at
Attribute verfolgt werden, zu viele, um in einer wartbaren Weise zu überschreiben. Was ich denke ist, kann ich einfach die Basis Referenzzeitvariable in Ruby ändern?Überschreiben Sie, was Ruby denkt, ist die aktuelle Zeit in Time.now?
macht Dies würde es so created_at
, updated_at
, last_login_at
usw., zu einer künstlichen Zeit eingestellt werden kann, so konnte ich dies in Tests durchführen:
Date.today #=> Thu, 30 Dec 2010
Time.system_time_offset = 1.week.ago # made up
Date.today #=> Thu, 23 Dec 2010
Time.now #=> Thu Dec 23 14:08:38 -0600 2010
user_1 = User.create!
user_1.created_at #=> Thu Dec 23 14:08:38 -0600 2010
Time.reset_system_time # made up
user_2 = User.create!
user_1.created_at #=> Thu Dec 30 14:08:38 -0600 2010
Gibt es eine Möglichkeit, dies zu tun?
Dies könnte für Sie nützlich sein: http://stackoverflow.com/questions/714042/unit-testing-code-which-gets-current-time –
Duplikat von http://stackoverflow.com/questions/1215245/ ruby-unit-testing-how-to-fake-zeit-jetzt –