rspec和_return多个值

jay*_*del 4 rspec ruby-on-rails

我试图存根一个返回多个值的方法.例如:

class Foo
  def foo(a,b)
    return a + 1, b + 2
  end
end
Run Code Online (Sandbox Code Playgroud)

我想存根,但是我遇到了带有2个值返回的and_return问题

f = Foo.new
f.stub!(:foo).and_return(3,56)
Run Code Online (Sandbox Code Playgroud)

不起作用.它在第一次调用时基本上返回3,第二次调用56.有没有人知道它第一次被调用时返回3,56的语法是什么?这对rspec来说甚至可能吗?

先谢谢... jd

Dav*_*ton 15

多值返回是数组:

> def f; return 1, 2; end
> f.class
 => Array 
Run Code Online (Sandbox Code Playgroud)

所以返回一个数组:

f.stub!(:foo).and_return([3, 56])
Run Code Online (Sandbox Code Playgroud)