2015-09-04 108 views
0

我在我的應用程序下面的代碼:存根睡眠使用RSpec

def timeout_tasks 
    10.times do 
    # Work... 
    sleep 2 
    end 
end 

我想考這個方法,但需要存根sleep到我不必等那麼多的測試,完。

我該怎麼做?我知道allow(Object).to receive(:sleep),但我不確定Object是什麼。或者還有其他更好的方法嗎?

+0

我相信這個問題已經回答:[磕碰內核休眠(http://stackoverflow.com/questions/1168845/rspec-stubbing-kernelsleep) – skmichaelson

+0

看到一個,但在我的情況下忍不住... – linkyndy

回答

1

你應該在它被調用的物體上存根睡眠

例如:

class SleepTest 
    def sleep_method 
    sleep 2 
    end 
end 

並在測試

sleep_test = SleepTest.new 
allow(sleep_test).to receive(:sleep) 
+0

確實,這工作。非常感謝你! – linkyndy

0

我看起來像sleep方法是在Kernel中定義的,所以這將是你的對象。