【问题标题】:Failure/Error: expect(response.status).to eq(200) rspec失败/错误:expect(response.status).to eq(200) rspec
【发布时间】:2021-09-24 08:46:36
【问题描述】:

在登录用户后,我总是在会话请求测试中得到 302 重定向

Failure/Error: expect(response.status).to eq(200)
     
       expected: 200
            got: 302

spec/requests/sessions_spec.rb

  describe do
   let!(:user) { create(:user) }

    context do
      before { sign_in user }

      it do
        get api_users_path
        expect(response.status).to eq(200)
      end
    end
  end

配置:spec_helper.rb

  config.include Devise::Test::IntegrationHelpers, type: :request
  config.include Warden::Test::Helpers, type: :request

【问题讨论】:

  • 您使用过scaffold 吗?脚手架语法在 get 方法上返回 302 状态,reference
  • 不,不是脚手架
  • 你的路由文件是什么样的?
  • devise_for :users, controllers: { sessions: 'sessions' }

标签: ruby-on-rails ruby rspec rspec-rails rspec2


【解决方案1】:

解决方案是在 headers 中提供 Token

request.headers['HTTP_ACCEPT'] = 'application/json'
request.headers['Authorization'] = token

并删除登录

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多