【问题标题】:Set headers before request in Rails Minitest在 Rails Minitest 中请求之前设置标头
【发布时间】:2018-06-09 05:47:33
【问题描述】:

在 Ruby on Rails Minitest 中,有没有办法在 ActionDispatch::IntegrationTest 测试中调用请求之前设置标头?

before/setup里面暂时没有解决办法。

# Default way
test 'foo' do
  get '/home', headers: { foo: "bar" }
end

# How I wish
test 'foo' do
  @request.headers['foo'] = "bar"

  get '/home'
end

# I already tried and it did not work...
test 'foo' do
  request.headers['foo'] = 'bar'
  @request.headers['foo'] = 'bar'
  request.env['foo'] = 'bar'
  @request.env['foo'] = 'bar'
  request.env['HTTP_FOO'] = 'bar'
  @request.env['HTTP_FOO'] = 'bar'

  get '/home'
end

  • Ruby 版本:ruby 2.5.1p57
  • Rails 版本:5.2.0
  • Minitest 版本:5.1

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-5 minitest


    【解决方案1】:

    默认方式很好,但是根据headers的命名自定义header应该以“X-”前缀开头。

    test 'foo' do
      get '/home', headers: { "X-Foo": "bar" }
    end
    

    【讨论】:

    • 记住了,我使用的是前缀,“foo”和“bar”只是示例。而且默认的方式不是我要找的。​​span>
    猜你喜欢
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2020-12-22
    • 2023-04-03
    相关资源
    最近更新 更多