加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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")

没有其他解决方案有效,所以我将与此保持同步.

谢谢.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读