我使用rspec
为我的应用程序编写测试。要授权我在标题中发送token
:
request.headers['token'] = '000000099'
get :index
在控制器端,我可以按request.env["HTTP_TOKEN"]
读取此值,但env["HTTP_TOKEN"]
为空。
它们之间有什么区别?我如何设置env
而不是request.env
?
答案 0 :(得分:7)
request.env
是一个ruby数组,包含有关访问用户和服务器环境的信息。 request.env
是Rails应用中用于提取重要信息的标准对象,例如path_info
,request_uri
等。
env
对您的测试为空,因为rspec-rails
会绕过ActionController::Metal
调度方法。