1

我在 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
4

1 回答 1

1

如果您使用 Firefox 运行测试,您可以使用您喜欢的任何 USER_AGENT 创建自定义驱动程序。看到这个答案

一旦您创建了自定义驱动程序,您可以在运行场景时使用它,只需使用驱动程序名称标记场景,例如,如果您这样做Capybara.register_driver :old_browser,您可以将场景标记为@old_browser,Capybara 将自动切换驱动程序。如果您不喜欢这样,您可以随时切换驱动程序:Capybara.current_driver = :old_browser.

于 2012-04-13T16:05:45.840 回答