Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了红宝石 – 黄瓜和水豚,如何打开外部网址或访问外部网址大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用黄瓜和水豚.在rails 3.0.9平台上.我得到这个测试案例失败:
日志是: @H_@R_@R_489_11289@_11263@_3@(::) failed steps (::) No route matches "/wiki/Baltimore_Ravens" (ActionController::routIngError) <internal:prelude>:10:in `synchronize' ./features/step_definitions/web_steps.rb:20:in `/^(?:|I )am on (.+)$/' features/Annotate.feature:7:in `Given I am on a web page' Failing Scenarios: cucumber features/Annotate.feature:11 # Scenario: launch Annotation/ logged in 6 scenarios (1 failed,5 skipped) 63 steps (1 failed,62 skipped)

文件web_steps:得到这段代码:

@H_@R_@R_489_11289@_11263@_3@19 Given /^(?:|I )am on (.+)$/ do |page_name| 20 visit path_to(page_Name) 21 end

文件Annotate.feature得到这个代码:

@H_@R_@R_489_11289@_11263@_3@7 Given I am on a web page

“web页面”在support / paths.rb中定义为:

@H_@R_@R_489_11289@_11263@_3@when /a web page/ 'http://en.wikipedia.org/wiki/Baltimore_Ravens'

显然这是一个外部网址.我想打开它,水豚和黄瓜不允许我这样做.所以,帮我找一个打开外部url的方法在黄瓜测试用例!

解决方法

Capybara使用RackTest作为默认驱动程序,此驱动程序不允许访问外部URL(即测试远程应用程序).

如果您想访问外部网址(要测试,例如您的应用程序重定向正确),您基本上有两个选项:

1 /使用其他驱动程序,例如硒:

@H_@R_@R_489_11289@_11263@_3@before do Capybara.current_driver = :SELEnium end

然后,在代码中,您可以像这样调用url:

@H_@R_@R_489_11289@_11263@_3@visit 'http://en.wikipedia.org/wiki/Baltimore_Ravens'

或者,如果您设置默认的app_host像这样:

@H_@R_@R_489_11289@_11263@_3@Capybara.app_host = 'http://en.wikipedia.org' Capybara.run_server = false # don't start Rack

然后你可以调用url:

@H_@R_@R_489_11289@_11263@_3@visit '/wiki/Baltimore_Ravens'

您可以在spec_Helper.rb中配置驱动程序和应用程序主机,以便在所有规范中全局启用它们:

@H_@R_@R_489_11289@_11263@_3@Capybara.configure do |config| config.current_driver = :SELEnium config.run_server = false config.app_host = 'http://en.wikipedia.org' end

2 /使用capybara-mechanize

大佬总结

以上是大佬教程为你收集整理的红宝石 – 黄瓜和水豚,如何打开外部网址或访问外部网址全部内容,希望文章能够帮你解决红宝石 – 黄瓜和水豚,如何打开外部网址或访问外部网址所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。