使用rspec测试链接?

Jas*_*Kim 13 rspec ruby-on-rails ruby-on-rails-3

如果我<%= link_to "Help", help_path %>在视图文件中有类似的东西,如何使用rspec测试以下内容?

  1. 它去了help_path.
  2. 内容显示为"帮助".

我目前正在使用水豚.


编辑

虽然下面的答案可行,但我认为我找到了一种更简单的方法.

describe "some link on whatever page" do
  subject { page }
  before { visit whatever_path }
  it { should have_link('Help', href: help_path) }
end
Run Code Online (Sandbox Code Playgroud)

小智 5

如果您正在使用水豚

my_link = find(:css, "a:contains('Help')")
my_link.click

and get page status, should be 200 or simply check


my_link.href
Run Code Online (Sandbox Code Playgroud)

但是,您也可以简单地将路由规范添加到rspec中的集成规范中。像这样始终确保此路由存在

describe HelpController do

  it "should have proper routes" do
    {:get => "/halp/772/parser/18/edit" }.should be_routable
    {:post => "/halp/772/parser" }.should be_routable
    {:delete => "/halp/772/parser/18" }.should be_routable          
  end

end
Run Code Online (Sandbox Code Playgroud)