RSpec Rails登录过滤器
|
我最近切换开始在我的Rails(3.0.8)应用程序中使用rspec-rails(2.6.1)。我曾经使用过Test :: Unit,但似乎无法为我的测试方法使用过滤器。我希望将事情保持为DRY,所以我想设置一个过滤器,以便可以在调用测试方法之前以Authlogic用户身份登录的任何测试方法上调用。我尝试通过在spec_helper.rb中使用RSpec过滤器来完成此操作:
config.before(:each, :login_as_admin => true) do
post \"/user_sessions/create\", :user_session => {:username => \"admin\", :password => \"admin\"}
end
然后,在相应的测试方法中使用它(在本例中为spec / controllers / admin_controller_spec.rb):
require \'spec_helper\'
describe AdminController do
describe \"GET index\" do
it(\"gives a 200 response when visited as an admin\", :login_as_admin => true) do
get :index
response.code.should eq(\"200\")
end
end
end
但是,运行rspec spec时出现此错误:
Failures:
1) AdminController GET index gives a 200 response when visited as an admin
Failure/Error: Unable to find matching line from backtrace
RuntimeError:
@routes is nil: make sure you set it in your test\'s setup method.
布莱克每次测试只能发送一个HTTP请求吗?我还尝试了我的authenticate_admin方法(位于config.before块中),没有任何运气。
没有找到相关结果
已邀请:
2 个回复
呈辖玫割善
钩子以它们被注册的顺序执行,并且在ѭ5declared中声明的那些钩子在
内部注册的钩子之前被注册,以建立控制器,请求,响应等。 另外,这已报告到https://github.com/rspec/rspec-rails/issues/391。
乐遣杀屎
然后可以在控制器规格中设置过滤器