rspec和_return多个值

时间:2011-11-08 13:34:30

标签: ruby-on-rails rspec

我正在尝试存根返回多个值的方法。例如:

class Foo
  def foo(a,b)
    return a + 1, b + 2
  end
end

我想要存根,但我遇到了带有2次值返回的and_return

f = Foo.new
f.stub!(:foo).and_return(3,56)

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

提前谢谢...... JD

1 个答案:

答案 0 :(得分:15)

多值返回是数组:

> def f; return 1, 2; end
> f.class
 => Array 

所以返回一个数组:

f.stub!(:foo).and_return([3, 56])