我是测试和使用RSpec的新手,需要一些帮助:
我已经分享了示例组:
shared_examples_for 'request which do something' do |opts = {}|
respond.should redirect_to(opts[:redirect_to])
end
在我的spec文件中:
describe "behavior" do
it_should_behave_like 'request which do something', :redirect_to => root_path
end
看起来不错,但我收到了这个错误:
Exception encountered: #<NameError: undefined local variable or method `root_path' for #<Class:0x000000069e2838>>
并指出&#39; it_should_behave_like ...&#39;
我尝试在spec_helper中包含 Rails.application.routes.url_helper ,但它仍无法正常工作。
顺便说一下,它完全适用于这样的例子:
describe "behavior" do
it "should redirect" do
response.should redirect_to(root_path)
end
end
(即使没有明确包括url_helpers)
感谢您的帮助。
答案 0 :(得分:2)
您不能在示例组中使用路径助手,但有一种解决方法。看到这个答案:
Passing a named route to a controller macro in RSpec
有了这个,您可以传递一个符号并使用send
。
答案 1 :(得分:0)
在示例组中,输入Rails.application.routes.url_helpers.root_path
而不只是root_path
。您可以创建自己的帮助器方法来
短打一遍。