【问题标题】:rails rspec http basic authentication testrails rspec http 基本认证测试
【发布时间】:2014-02-26 00:25:22
【问题描述】:

如何使用 rspec2 和 capybara 测试登录到具有 http 基本身份验证的 rails 3.1 应用程序?

我正在使用这个;

 describe "GET 'index'" do
      it "should be successful" do
        request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")
        get 'index'
        response.should be_success
      end
    end

但它给了我这个错误;

 NoMethodError:
            undefined method `env' for nil:NilClass

【问题讨论】:

标签: ruby-on-rails-3 rspec capybara


【解决方案1】:

Capybara 内置了Rack::Test。

因此,您可以在发出请求之前使用Rack::Test::Session.basic_authorize method 设置Authorization HTTP header field。

basic_authorize 'username', 'password'
get 'index'

【讨论】:

    【解决方案2】:
    @request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")
    

    这应该是:

    request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")
    

    因为request 不是实例变量。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 2012-01-06
    • 2011-11-24
    相关资源
    最近更新 更多