Reputation: 17900
I have the following code in my app:
def timeout_tasks
10.times do
# Work...
sleep 2
end
end
I would like to test this method, but need to stub sleep
to I don't have to wait that much for the test to finish.
How can I do this? I am aware of the allow(Object).to receive(:sleep)
but I'm not sure what the Object
is. Or is there any other better approach?
Upvotes: 0
Views: 7070
Reputation: 29349
You should stub sleep on the object it is called on
Eg.
class SleepTest
def sleep_method
sleep 2
end
end
And in your test
sleep_test = SleepTest.new
allow(sleep_test).to receive(:sleep)
Upvotes: 1
Reputation: 26061
I looks like the sleep method is defined in Kernel so that would be your Object.
Upvotes: 0