Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用capybara测试基于用户代理的视图功能_Ruby On Rails_Ruby_Ruby On Rails 3_Cucumber_Capybara - Fatal编程技术网

Ruby on rails 如何使用capybara测试基于用户代理的视图功能

Ruby on rails 如何使用capybara测试基于用户代理的视图功能,ruby-on-rails,ruby,ruby-on-rails-3,cucumber,capybara,Ruby On Rails,Ruby,Ruby On Rails 3,Cucumber,Capybara,我在rails 3.2应用程序中有一些功能需要由用户的用户代理驱动。基本上,对于某些较旧的浏览器,我需要以不同的方式呈现页面 如何使用水豚/黄瓜测试我的观点是否正确响应 我看了这篇文章,但它看起来与最新的水豚不一样——它基本上改变了水豚存根环境参数的方式: 我想要的是一个黄瓜步骤定义,看起来像这样: When /^I visit the page with an unsupported browser$/ do user_agent = "Mozilla/5.0 (X11; U; Linu

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

如何使用水豚/黄瓜测试我的观点是否正确响应

我看了这篇文章,但它看起来与最新的水豚不一样——它基本上改变了水豚存根环境参数的方式:

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

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

如果您使用Firefox运行测试,您可以使用您喜欢的任何用户\代理创建自定义驱动程序。看


创建自定义驱动程序后,您可以在运行场景时使用它,只需在场景中标记驱动程序名称,例如,如果您使用
Capybara.register\u driver:old\u browser
,则可以将场景标记为
@old\u browser
,而Capybara将自动切换驱动程序。如果您不喜欢,您可以随时切换驱动程序:
Capybara.current\u driver=:old\u browser

如果您使用Firefox运行测试,您可以使用您喜欢的任何用户代理创建自定义驱动程序。看


创建自定义驱动程序后,您可以在运行场景时使用它,只需在场景中标记驱动程序名称,例如,如果您使用
Capybara.register\u driver:old\u browser
,则可以将场景标记为
@old\u browser
,而Capybara将自动切换驱动程序。如果您不喜欢,您可以随时切换驱动程序:
Capybara.current\u driver=:old\u browser

谢谢!这是有效的,通常正是我所需要的!然而,它实际上在测试运行时启动一个浏览器,然后关闭它。我的其他Cumber测试都没有真正启动浏览器。你知道我怎样才能抑制它吗?很高兴它能工作,从你的问题中我不确定你是否已经在使用浏览器驱动程序,显然你没有!除非您找到其他方法来更改用户代理,否则您对此无能为力,因为此方法依赖于使用Firefox配置文件,因此Firefox浏览器将启动!我在irc#capyabara上有人推荐使用capybara webkit。看,谢谢!这是有效的,通常正是我所需要的!然而,它实际上在测试运行时启动一个浏览器,然后关闭它。我的其他Cumber测试都没有真正启动浏览器。你知道我怎样才能抑制它吗?很高兴它能工作,从你的问题中我不确定你是否已经在使用浏览器驱动程序,显然你没有!除非您找到其他方法来更改用户代理,否则您对此无能为力,因为此方法依赖于使用Firefox配置文件,因此Firefox浏览器将启动!我在irc#capyabara上有人推荐使用capybara webkit。最后,我使用capybara-webkit解决了这个问题。最后,我使用capybara-webkit解决了这个问题。