gpt4 book ai didi

ruby-on-rails - 在 Time.now 中覆盖 Ruby 认为的当前时间?

转载 作者:数据小太阳 更新时间:2023-10-29 07:21:05 25 4
gpt4 key购买 nike

我想为应用程序创建测试数据,并且有很多 time_at 属性被跟踪,太多而无法以可维护的方式覆盖。我在想,我可以只更改 Ruby 中的基本引用时间变量吗?

这将使 created_atupdated_atlast_login_at 等可以设置为人工时间,所以我可以这样做这在测试中:

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

有办法吗?

最佳答案

你可以使用 Mocha在测试期间更改 Time.now 的返回值:

Time.stubs(:now).returns(Time.now - 1.day)

关于ruby-on-rails - 在 Time.now 中覆盖 Ruby 认为的当前时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4565893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com