RSpec Stubbing:按顺序返回

Sir*_*lot 4 ruby rspec stub

我知道以下事情有效:

返回一个参数

subject.should_receive(:get_user_choice){ |choices| choices.to_a[0] }
Run Code Online (Sandbox Code Playgroud)

和一个序列(它将在第一次调用时返回0,第二次返回"退出")

subject.should_receive(:get_user_choice).and_return(0, "exit")
Run Code Online (Sandbox Code Playgroud)

但如何将它们结合起来呢?如果我想第一次返回参数然后返回"退出"怎么办?

Jak*_*b S 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" }
Run Code Online (Sandbox Code Playgroud)