gpt4 book ai didi

ruby-on-rails - 规范;如何测试这个功能?

转载 作者:行者123 更新时间:2023-11-28 21:25:18 26 4
gpt4 key购买 nike

ImageManager.check_enable_time

def check_enable_time
# get current time
now_time = Time.now
# UTC to JST convestion JST = UTC + 9 hours
hour = now_time.in_time_zone("Asia/Tokyo").hour
(hour != 23) ? true : false

结束

如果 JST 中的当前时间 != 23 则此函数返回 true,否则返回 false。

我想测试这个功能。

我尝试了什么:

 describe ImageManager do
describe "Test check_enable_time() function" do
context "When current time in JST != 23" do
it 'should return true' do
image_manager = ImageManager.new
result = image_manager.check_enable_time
result.should eql(true)
end
end
end
end

如何使 now_time.in_time_zone("Asia/Tokyo").hour 返回 23 而不是 23?

请帮助我是 rails 和 rspec 的新手。

最佳答案

避免安装另一个 gem 的解决方案是重写您现有的方法,这样它就不会显式依赖 Time.now:

def check_enable_time(now_time = Time.now)
# UTC to JST convestion JST = UTC + 9 hours
hour = now_time.in_time_zone("Asia/Tokyo").hour
(hour != 23) ? true : false
end

然后您可以通过传递适当的时间来测试它:

it 'should return true' do
image_manager = ImageManager.new
time = Time.local(2008, 9, 1, 12, 0, 0)
result = image_manager.check_enable_time(time)

result.should eql(true)
end

关于ruby-on-rails - 规范;如何测试这个功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42339268/

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