2012-05-18 28 views
11

Jeśli mam plik podobny do <%= link_to "Help", help_path %> w pliku widoku, w jaki sposób mogę przetestować następujące rzeczy za pomocą rspec?Testowanie łączy za pomocą rspec?

  1. Przechodzi do help_path.
  2. Treść czyta "Pomoc".

Obecnie używam kapibara.


edit

Podczas odpowiedzi poniżej może pracować, myślę, że znalazłem prostszy sposób to robi.

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

Odpowiedz

4

Jeśli używasz kapibary następnie

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

and get page status, should be 200 or simply check 


my_link.href 

Ale także można po prostu dodać trasy specyfikacje do specyfikacji integracyjnych w RSpec. Tak aby być zawsze pewien, że to trasy istnieje

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 
3

Korzystając have_tag dopasowujący . Here to cheatsheet.

response.should have_tag("a[href$=#{help_path}]", :text => "Help") 

P.S. Czy przeczytałeś rails guides?

+3

have_tag jest nieważne. Łącze do cheatsheet jest martwe. have_selector jest prawdopodobnie najbliższym zamiennikiem. http://guides.rubyonrails.org/testing.html#testing-views – IAmNaN

Powiązane problemy