标签: ruby-on-rails rspec sleep stub
我的应用中有以下代码:
def timeout_tasks 10.times do # Work... sleep 2 end end
我想测试这个方法,但需要存根sleep,我不必等待那么多测试才能完成。
sleep
我该怎么做?我知道allow(Object).to receive(:sleep),但我不确定Object是什么。或者还有其他更好的方法吗?
allow(Object).to receive(:sleep)
Object
答案 0 :(得分:1)
你应该在它被调用的对象上存根睡眠
例如
class SleepTest def sleep_method sleep 2 end end
在你的考试中
sleep_test = SleepTest.new allow(sleep_test).to receive(:sleep)
答案 1 :(得分:0)
我看起来在sleep中定义了Kernel方法,因此这将是您的对象。