考虑以下返回两个值的函数(假设它是一个与类Foo
关联的方法(:
def returns_two_things()
// some logic that computes result1 and result 2
return result1, result2
end
我想我可以像这样截去returns_two_things
:
allow(@my_foo_instance).to receive(:returns_two_things)
.and_return("foo", "bar")
但只有";foo";正在返回。我推测CCD_ 3方法用于告诉rspec返回"0";foo";第一次调用CCD_ 4;条";第二次。这就是我在试图测试的代码中调用returns_two_things
的方式
result1, result2 = @my_foo_instance.returns_two_things()
如何让rspec从存根函数返回两个值?
Ruby没有多值返回。提供的代码示例隐式返回一个包含2个元素的数组,即return "foo", "bar"
与return ["foo", "bar"]
相同。
因此,正确的存根方式是:
allow(@my_foo_instance).to receive(:returns_two_things)
.and_return(["foo", "bar"])