如何在請求規範請求之前設置請求頭?訪問請求規範中的請求對象
我正在移動控制器規格以使用Rails在我的API上請求規範。我堅持的一件事是,我無法訪問request
對象來允許請求。
在我的控制器的規格,我有機會到我創建了一個方法,它標誌一個特定的用戶:
def sign_in(user)
token = user.api_keys.first.token
# note the request object being used in the next line
request.env["HTTP_AUTHORIZATION"] = ActionController::HttpAuthentication::Token.encode_credentials(token)
end
這部作品控制器規格很好,我可以放心地做:
before { sign_in(user) }
it { post :endpoint, params }
但在請求規範中,request
對象不可用。 如果我嘗試:
before { sign_in(user) }
it { post "/api/endpoint", params }
我得到request
上幫助我的方法nil
。
我知道我可以做的:
it { post "/api/endpoint", {"HTTP_AUTHORIZATION" => ... } }
但這似乎很多雜亂的規範,特別是相對於控制器規範。
我試過使用ActionDispatch::TestRequest::DEFAULT_ENV
建議this answer,但它也沒有工作(我得到401
)。
太好了,謝謝! –
這是在rspec文檔中的任何地方指定的? –