如何使用Rspec和Capybara为外部链接创建测试?

时间:2012-08-21 18:34:56

标签: rspec capybara rspec2 rspec-rails

我有一个Ruby on Rails 3.2.6应用程序,我使用下面的代码编写了应用程序中链接的测试:

visit about_path
click_link "Frequently Asked Questions (FAQ)"
page.should have_selector 'title', text: full_title('Frequently Asked Questions (FAQ)')

我在整个应用程序中都有链接,人们可以在Twitter和Facebook上关注我们。当他们点击这些链接时,他们会在新窗口中打开。我想验证当他们点击链接时他们将转到正确的页面。

我从亚马逊购买了Rspec Book,因为我还在学习测试驱动开发,Rspec和Capybara。我已经检查了本书的几个部分,但找不到任何解决此问题的信息。

http://www.amazon.com/The-RSpec-Book-Behaviour-Development/dp/1934356379

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果要检查自己的代码(生成的页面包含正确的链接) - 然后测试相关链接的href属性。这样的事情:

href = "http://www.amazon.com/The-RSpec-Book-Behaviour-Development/dp/1934356379"
page.should have_selector "a[href='#{href}']", text: "The Rspec Book"

如果你想检查自己的网址(你正确地复制了网址或者网址仍然指向了正确的网页) - 那么这里是相关的Capybara文档:Calling remote servers

答案 1 :(得分:0)

默认情况下,Capybara使用:rack_test驱动程序,该驱动程序速度快但有限:它不支持JavaScript,也无法访问Rack应用程序之外的HTTP资源,例如远程API和OAuth服务。要解决这些限制,您可以为功能设置不同的默认驱动程序。例如,如果您更喜欢在Selenium中运行所有内容,则可以执行以下操作:

  

Capybara.default_driver =:selenium

https://github.com/jnicklas/capybara

相关问题