Dre*_*ker 2 ruby rspec ruby-on-rails rspec-rails
我想ActionDispatch request在我的规范中用helper方法设置重要的标题:
RSpec.describe API::V1::FoosController, type: :request do
describe 'GET #index' do
context 'common case' do
request.env.merge!({'HTTP_FOO': 'FOO'})
get api_foos_path, {}, {Accept: Mime::JSON}
end
end
end
Run Code Online (Sandbox Code Playgroud)
但是request当涉及到控制器时,这个标题(通常是任何标题集)都会消失:
class API::V1::FoosController < ApplicationController
respond_to :json, :xml
def index
request.env.has_key? 'HTTP_FOO' # false
respond_with serialize_models(Foo.all)
end
# ...
end
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?如何正确设置?设置标题request.header或@request.header使用相同的标题.
PS:我知道我可以将标题设置为Rack::Test::Methods助手的第三个参数,但我不想违反DRY - 我只想在那里定义Mime格式.
| 归档时间: |
|
| 查看次数: |
2364 次 |
| 最近记录: |