ruby-on-rails - rspec and_return多个值

标签 ruby-on-rails rspec

我试图 stub 返回多个值的方法。例如:

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

我想 stub 但我在使用and_return遇到麻烦,返回2个值
f = Foo.new
f.stub!(:foo).and_return(3,56)

不起作用。它基本上在第一次调用时返回3,在第二次调用时返回56。有谁知道语法在第一次被调用时会返回3,56的语法是什么?使用rspec甚至可能吗?

提前致谢...
d

最佳答案

多值返回是数组:

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

因此返回一个数组:
f.stub!(:foo).and_return([3, 56])

关于ruby-on-rails - rspec and_return多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8051202/

相关文章:

ruby-on-rails - Vim ruby​​, rails omnicompletion : "Error loading rails environment". 如何配置 vim-ruby 的自动完成以与 rails 一起工作?

ruby-on-rails - Homebrew 更新了 zlib 并破坏了一切

ruby-on-rails - 使用选项配置 block 进行序列化

ruby-on-rails - 来自 capybara 的弃用警告

ruby-on-rails - #<RSpec::Core::ExampleGroup...> 的 RSpec 3 未定义方法 `allow'

ruby-on-rails - ajax 检查电子邮件是否已经存在 Ruby on Rails

ruby-on-rails - 如何从 Rails 控制台执行模块中的方法?

ruby-on-rails - 使用rspec测试Rails的嵌套属性

ruby - 是否有调试 RSpec (RSpec2) 中顺序相关测试失败的好方法?

ruby-on-rails - capybara 无法找到并填写第一个表单元素