ruby-on-rails – 在RSpec测试中跳过Rails http_basic_authentic
发布时间:2020-12-17 02:42:23 所属栏目:百科 来源:网络整理
导读:我正在研究MVP(最低可行产品).为了提供一种更简单的方法来保护管理页面,我只是将http_basic_authenticate_with添加到我的AdminController中. 问题是当我想测试我的AdminController时,我得到“未授权”(401)因为没有登录. 在这种情况下,测试身份验证无关紧要
我正在研究MVP(最低可行产品).为了提供一种更简单的方法来保护管理页面,我只是将http_basic_authenticate_with添加到我的AdminController中.
问题是当我想测试我的AdminController时,我得到“未授权”(401)因为没有登录. 在这种情况下,测试身份验证无关紧要 – 它只是暂时的,一旦我进入下一个sprint,它就会被删除 – 所以我试图在RSpec中跳过它. 问题是我尝试了很多方法,但似乎都没有. 例如,我尝试修改http_basic_authenticate_with以避免身份验证.像这样: require 'spec_helper' module ActionController module HttpAuthentication module Basic def http_basic_authenticate_with(*args) end end end end describe Admin::SubscribersController do describe "GET 'index'" do it "should be OK" do get 'index' response.should be_successful end end end 但是当我运行它时,对于那个简单的测试,它仍然会返回“false”. 顺便说一句,为了简化这个测试,我只在我的AdminController上有一个空的索引操作和一个空视图(index.html.erb). 解决方法
最后,我得到了它的工作.
文档中陈述的内容对我不起作用: get 'index',nil,'HTTP_AUTHORIZATION' => ActionController::HttpAuthentication::Basic.encode_credentials("admin","password") 所以我尝试了一种“旧的”方法,即设置request.env [‘HTTP_AUTHORIZATION’]: request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials("admin","password") 没有其他解决方案有效,所以我将与此保持同步. 谢谢. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |