Joh*_*hir 37 integration-testing ruby-on-rails
我之前在轨道2的应用程序在做这个ActionController::IntegrationTest用
get '/', {}, {:user_agent => "Googlebot"}
Run Code Online (Sandbox Code Playgroud)
但这似乎在Rails 3中不再起作用了.
我该怎么办?
小智 43
如果在应用程序中使用request.user_agent,则可以编写以下代码:
get '/', {}, { "HTTP_USER_AGENT" => "Googlebot" }
Run Code Online (Sandbox Code Playgroud)
Ale*_*lav 15
上述答案都不适用于我,以下是最终在rspec控制器测试中工作的内容:
@request.user_agent = "a MobileDevice/User-Agent"
post :endpoint, param: 2354
Run Code Online (Sandbox Code Playgroud)
我修复了这种行为,使用Rails 4.0,您将能够在集成和功能测试中指定实际的HTTP标头,如"User-Agent"和"Content-Type".不再需要将它们指定为CGI变量.
如果您有兴趣,可以查看更改:https://github.com/rails/rails/pull/9700
小智 6
我能够使用它在 Rails 5.2.1 上工作:
get '/path', headers: { 'HTTP_USER_AGENT' => 'Mozilla/5.0 (blah blah)' }
Run Code Online (Sandbox Code Playgroud)
我在这里查找了该方法可接受的关键字。
| 归档时间: |
|
| 查看次数: |
9652 次 |
| 最近记录: |