Итак, у меня есть два вызова метода retry_with_timeout, который принимает блок и выполняется до тех пор, пока блок не вернет true или значение, отличное от nil (т.е. false приведет к циклу), или пока Тайм-аут происходитRspec mocking block on the stub не получается
Sample класс:
def do_the_thing
retry_with_timeout(10, 5) do
case something
when 1
false
when 2
false
else
raise
end
end
retry_with_timeout(30, 10) do
case something_else
when 1
false
when 2
false
when 3
true
else
raise
end
end
end
Spec класс:
it "should pass when the thing is 3" do
model = test_model #creates a double and stubs all of the necessary common methods
t_model.stub(:retry_with_timeout).with(10, 5).ordered
t_model.stub(:retry_with_timeout).with(30, 10).and_yield().ordered
expect { t_model.do_the_thing }.to be(true)
end
Я получаю сообщение об ошибке, потому что '3' дело не в первом блоке, таким образом, 'еще' является вызов ed ...
Мне нужно пропустить первый и оценить во втором блоке .... Я пробовал ВСЕ, И Я ЛЮБЛЮ МОЙ МИР !!!! Может кто-нибудь мне помочь?