Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在RSPEC中传递承载令牌(无nil到字符串的隐式转换)_Ruby On Rails_Ruby_Testing_Rspec_Rspec Rails - Fatal编程技术网

Ruby on rails 在RSPEC中传递承载令牌(无nil到字符串的隐式转换)

Ruby on rails 在RSPEC中传递承载令牌(无nil到字符串的隐式转换),ruby-on-rails,ruby,testing,rspec,rspec-rails,Ruby On Rails,Ruby,Testing,Rspec,Rspec Rails,我正试图传递@令牌,但出现此错误 require 'rails_helper' RSpec.describe "User management", :type => :request do describe "Example::V2::Users" do describe "GET /api/v2/users/" do it 'returns status 200, authorized' do @token =

我正试图传递
@令牌
,但出现此错误


require 'rails_helper'
RSpec.describe "User management", :type => :request do
    describe "Example::V2::Users" do
        describe "GET /api/v2/users/" do

          it 'returns status 200, authorized' do
              @token =  "Bearer 123"
              @url = "https://api.example-v2.com/v2/users/me"
              @headers = { "AUTHORIZATION" => @token}
              get @url, as: :json, headers: {:Authorization => @token}
              expect(response.status).to eq 200
          end
        end
    end
end

我可以在没有参数和头的情况下发出get请求,它可以工作,但是一旦我添加了参数或头,我就得到了错误,我甚至试着这样编写它

 Failure/Error: get @url, as: :json, headers: {:Authorization => @token}

     TypeError: no implicit conversion of nil into String
一些聪明人请给我指出正确的方向

宝石:


请检查一下,这对我有用

gem 'rspec-rails', '~> 3.8'
gem 'rails', '~> 6.0.2.2'

请检查一下,这对我有用

gem 'rspec-rails', '~> 3.8'
gem 'rails', '~> 6.0.2.2'
get@url,as::json,头:{Authorization:@token}
键入:reuqst
时,这在我的环境中起作用
我建议您可以在GET请求之前使用
byebug
并检查@token和@url。

如果一切看起来都很好。
检查
get
是否可以请求根url?
检查
rails\u helper
是否需要任何可疑文件?

get@url,as::json,headers:{Authorization:@token}
键入:reuqst
时,这在我的环境中起作用
我建议您可以在GET请求之前使用
byebug
并检查@token和@url。

如果一切看起来都很好。
检查
get
是否可以请求根url?

检查
rails\u helper
是否需要任何可疑文件?

您有什么版本的rails和rspec?这是:控制器测试还是:请求测试?@TimurNugmanov我用信息更新了问题您有什么版本的rails和rspec?这是:控制器测试还是:请求测试?@TimurNugmanov我用信息更新了问题如果您解释为什么这是首选解决方案,并解释它是如何工作的,infoIt会帮助更多。我们希望提供教育,而不仅仅是提供代码。如果您解释为什么这是首选解决方案,并解释它是如何工作的,这将更有帮助。我们想要教育,而不仅仅是提供代码。
require 'rails_helper'
RSpec.describe "User management", :type => :request do
  describe "PeopleGoal::V2::Users" do
    describe "GET /api/v2/users/" do
      it 'returns status 200, authorized' do
        request.headers["AUTHORIZATION"] = "Basic #{user.id}"
        @url = "https://api.peoplegoal-v2.com/v2/users/me"
        get @url, format: :json
        expect(response.status).to eq 200
      end
    end
  end
end