如何使用capybara基于USER_AGENTs测试视图功能

时间:2012-04-13 12:36:31

标签: ruby-on-rails ruby ruby-on-rails-3 cucumber capybara

我在rails 3.2应用程序中有一些功能需要由用户的USER_AGENT驱动。基本上,对于某些较旧的浏览器,我需要以不同的方式呈现页面。

如何使用capybara / cucumber测试我的视图是否正确响应?

我看过这篇文章,但它看起来不像最新的水豚 - 它基本上破坏了水豚根据环境参数的方式:

http://blog.sparqcode.com/2011/03/07/custom-user-agent-strings-with-cucumber-and-capybara/

我想要的是黄瓜步骤定义,看起来像这样:

When /^I visit the page with an unsupported browser$/ do
  user_agent = "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox/3.8"
  # do something here that mimics the user arriving on the page with this USER_AGENT
end

1 个答案:

答案 0 :(得分:1)

如果您使用Firefox运行测试,则可以使用您喜欢的任何USER_AGENT创建自定义驱动程序。请参阅this answer

创建自定义驱动程序后,只需使用驱动程序名称标记方案即可在运行方案时使用它,例如,如果执行Capybara.register_driver :old_browser,则可以将方案标记为{{1} },Capybara会自动切换驱动程序。如果您不喜欢,可以随时切换驱动程序:@old_browser