我知道以下事情有效:
返回参数
subject.should_receive(:get_user_choice){ |choices| choices.to_a[0] }
和一个序列(它将在第一次调用时返回0,第二次返回“exit”)
subject.should_receive(:get_user_choice).and_return(0, "exit")
但如何将它们结合起来? 如果我想第一次返回参数然后返回“退出”
该怎么办?答案 0 :(得分:5)
可替换地:
subject.should_receive(:get_user_choice).ordered.and_return { |choices| choices.to_a[0] }
subject.should_receive(:get_user_choice).ordered.and_return { "exit" }
答案 1 :(得分:1)
不是最优雅,但如何:
n = 0
subject.should_receive(:get_user_choice){|choices|
(n += 1) < 2 ? choices.to_a[0] : "exit"
}