微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 在rails测试上设置自定义用户代理

我正在使用 turbolinks-ios和Rails变体开发iOS应用程序.

在我的iOS应用程序中,我设置自定义用户代理iPadApp并检测Rails应用程序控制器上是否正在使用request.user_agent.try(:index,’iPadApp’)将变体设置为平板电脑(因为视图类似于foo.html tablet.haml ).

我的应用程序工作正常,现在我正在尝试为我的应用程序编写功能测试,但无法正确设置用户代理.我试过this帖子,实际上是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')

然后,应该在您的应用程序代码中访问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

然后将您的驱动程序指定为:ipad_rack_test

原文地址:https://www.jb51.cc/ruby/264988.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐