我试图传递一个rspec,通常我会做一个方法并传递一个函数。 我所要做的就是加一个,我甚至尴尬地在这里发帖...
通常我会这样做def adder(n)
n+1
end
但是我需要传递一个块,而且我不熟悉它。
describe "adder" do
it "adds one to the value returned by the default block" do
adder do
5
end.should == 6
end
it "adds 3 to the value returned by the default block" do
adder(3) do
5
end.should == 8
end
end
我试过
def adder
yield {|n| return n+1 }
end
答案 0 :(得分:2)
以下代码将执行:
def adder(a=1, &block)
a + yield
end
=> :adder
adder do
5
end
=> 6
adder(3) do
5
end
=> 8
您需要了解how to pass a block as parameter和default values for methods