Stubbing一个返回多个值rspec的方法



考虑以下返回两个值的函数(假设它是一个与类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"])

相关内容

  • 没有找到相关文章

最新更新