Eng*_*mon 6 ruby-on-rails capybara turbolinks rspec3 turbolinks-ios
我正在使用turbolinks-ios和Rails变体开发iOS应用程序.
在我的iOS应用程序,我设置自定义用户代理iPadApp和检测on Rails的application controller使用request.user_agent.try(:index, 'iPadApp')设置variant到tablet(因为观点一样foo.html+tablet.haml).
我的应用程序工作正常,现在我正在尝试为我的应用程序编写功能测试,但无法正确设置用户代理.我试过这篇帖子实际上是stackoverflow但是我发现它没有设置request.user_agent而是用(page.driver.browser.header(key, value))设置查询参数request.params.
在我的控制器测试中,我只是request.user_agent = 'iPadApp'用来设置工作正常的用户代理.
如何配置测试请求以便我可以使用request.user_agent.try(:index, 'iPadApp')?
谢谢你的帮助.
由于您没有指定驱动程序,因此Capybara应该使用rack_test.随着rack_test驱动,你可以调用之前设置的用户代理头,在你的测试代码visit,用
page.driver.header('User-Agent', 'the user agent string you want')
Run Code Online (Sandbox Code Playgroud)
然后,应该在您的应用程序代码中访问request.user_agent.
另一种解决方案是为您的ipad测试注册特定的驱动程序
Capybara.register_driver(:ipad_rack_test) do |app|
Capybara::RackTest::Driver.new(app, :headers => { 'HTTP_USER_AGENT' => 'User agent string' })
end
Run Code Online (Sandbox Code Playgroud)
然后将您的驱动程序指定为:ipad_rack_test
| 归档时间: |
|
| 查看次数: |
3269 次 |
| 最近记录: |