我的application_helper_spec.rb
shared_examples_for "some shared process" do
it "displays the value defined by Let" do
puts object.inspect # This should output the value defined by Let
end
end
describe ApplicationHelper do
describe "a_helper_methond" do
describe "some behaviour" do
let(:object) { "foo" }
puts object.inspect # This should output the value defined by Let
it_should_behave_like "some shared process"
end
end
end
但是,当我运行这个时,我在两个put上都会遇到两个错误:
undefined local variable or method `object' for #<Class:0x007f951a3a7b20> (NameError)
为什么呢?我在我的模型中有完全相同的代码,请求规格运行正常,但在帮助程序规范中没有。
答案 0 :(得分:4)
let
调用在您的规范将被执行的上下文中定义一个方法。但是,您的puts
声明超出了该范围。您需要将其包含在it
块中。
it 'print debug output' do
puts object.inspect
end
答案 1 :(得分:0)
我还通过将let命令放在it_behaves_like块
中进一步改进了这一点