假设我们想为以下包含内部方法的方法编写rspec测试方法:
def outer_method(arg)
def inner_method(n)
n * 2
end
inner_method(arg) + 1
end
为了测试内部方法,我们需要使用RSpec的instance_eval
方法来访问内部方法,然后进行断言。以下是测试方法的示例代码:
describe "outer_method" do
it "returns the result of inner_method plus one" do
result = outer_method(4)
expect(result).to eq(9)
# access inner method and test
inner_result = instance_eval{ inner_method(3) }
expect(inner_result).to eq(6)
end
end
在此示例中,我们首先测试外部方法是否产生正确的输出,然后使用instance_eval
方法访问内部方法,并测试其是否正常工作。