2012-05-18 8 views
11

Si tengo algo como <%= link_to "Help", help_path %> en el archivo de vista, ¿cómo pruebo el siguiente uso de rspec?Probando enlaces utilizando rspec?

  1. Va a help_path.
  2. El contenido dice "Ayuda".

Actualmente estoy usando capybara.


edición

Mientras respuestas a continuación pueden trabajar, creo que he encontrado una manera más sencilla de hacer esto.

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

Respuesta

4

Si está utilizando capibara continuación

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

and get page status, should be 200 or simply check 


my_link.href 

Pero también podría simplemente agregar rutas especificaciones para las especificaciones de su integración en rspec. Al igual que esto sea siempre seguro de que esto existe rutas

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

Uso have_tag matcher . Here es una hoja de trucos.

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

P.S. ¿Leíste rails guides?

+3

have_tag ya no es válida. El enlace de la hoja de trucos está muerto. have_selector es probablemente el reemplazo más cercano. http://guides.rubyonrails.org/testing.html#testing-views – IAmNaN

Cuestiones relacionadas