rspec模拟返回给出了args

时间:2011-11-03 22:07:22

标签: ruby rspec

是否可以使用rspec返回给予stubbed / mocked方法的args?

我有点想写这样的东西:

object.should_receive(:foo).with(anything()).and_return(that_thing())

编辑:

我意识到了一种方法 - 通过方法调用返回块的返回值:

object.should_receive(:foo) { |args| args }

请参阅http://rspec.info/documentation/mocks/message_expectations.html

中的“对收到的消息的任意处理”

也许有另一种方式?

1 个答案:

答案 0 :(得分:0)

您可以使用替代实现来处理和存储参数:

that_thing = nil
object.should_receive(:foo).with(anything()) do |arg|
  that_thing = arg
end