【问题标题】:Set headers before each request in RSpec request spec在 RSpec 请求规范中的每个请求之前设置标头
【发布时间】:2017-03-17 02:14:11
【问题描述】:

如何在before each 中设置标题,如下所示?

RSpec.describe "Users API", type: :request do
  before :each do
    host! "example.org"
    // set a header for all requests here ??
  end
end

可能重复:How to set request headers in rspec request spec?

但上面没有回答我的问题。

【问题讨论】:

标签: rspec-rails


【解决方案1】:

找到了一种解决方案。包括Rack::Test::Methods 模块。 我不知道为什么请求规范不提供此功能。

RSpec.describe "Users API", type: :request do
  include Rack::Test::Methods

  before :each do
    host! "example.org"
    // now we can do
    header 'Authorization', "Bearer #{some_token}"
  end
end

【讨论】:

  • 包括 Rack::Test::Methods 会破坏整个请求规范流程,get|post|put... 方法的结果将不再分配给响应变量。不要在请求规范中这样做。
  • @januszm 你是对的。也许最好的办法是为每个请求手动设置标头,而不是寻找捷径。
猜你喜欢
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-26
  • 1970-01-01
  • 2012-06-09
相关资源
最近更新 更多