示例代码:
class Foo
def initialize(abc)
@abc = abc
@bind = bar
end
def bar
SomeClass.new(@abc)
end
end
现在我想使用rspec和自定义存根来存根:
allow('Foo').to receive(:bar).and_return(FakeBar.new)
问题是FakeBar.new
必须使用:bar
收到的相同参数进行初始化。是否有可能在我们存根时获取传递给:bar
的params的副本并在存根类中重用它们?
答案 0 :(得分:1)
不确定你为什么要做你正在做的事情(可能有一种更简单的方法),但是它的价值是什么:
allow("Foo").to receive(:bar) { |arg1, arg2| FakeBar.new(arg1, arg2) }