gpt4 book ai didi

ruby-on-rails - 用 Rspec 打桩 sleep 方法。

转载 作者:数据小太阳 更新时间:2023-10-29 09:01:55 27 4
gpt4 key购买 nike

我有这样的方法:

until panel_import.completed?
panel_import.update_status
sleep 1.minute
end

现在,当我运行我的规范时,我必须等待 1 分钟,这很糟糕。我怎么 stub 呢?我正在阅读许多主题,但没有找到解决方案...

最佳答案

作为@Rubyrider提到,这个链接提供了很好的帮助:RSpec: stubbing Kernel::sleep?

总结一下这个答案,您可以允许调用 sleep 的类接收 sleep 方法:

# Class that calls `sleep`
class Foo
def run
sleep 5
end
end

# Specs
...
describe '#run' do
before { allow_any_instance_of(Foo).to receive(:sleep) }

# your tests
end

这将模拟 sleep 方法并阻止它在这些测试期间运行。

虽然您也可以在代码中检查 Rails.env.test?,将 sleep 称为 @MilesStanfield建议,我总是尽量避免在我的常规代码中包含与我的测试相关的代码。

关于ruby-on-rails - 用 Rspec 打桩 sleep 方法。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33433650/

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