2011-12-11 14 views
5

Quiero tener la capacidad prueba la correcta swapping of a stylesheet en mi suite de pruebas. Con esta publicación sobre testing the page title using Capybara, pensé que podría probar cualquier etiqueta link en la sección head de la página. Pero parece que estoy equivocado.Capybara: ¿Cómo probar una hoja de estilo de una página?

Con un paso como este:

save_and_open_page 
page.should have_xpath("//link") # just something as simple as this, first. 

save_and_open_page genera un HTML como este (con un poco de materia eliminado por razones de brevedad):

<head> 
    ... 
    <link href="/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css?1323572998" type="text/css" class="jquery-styler" rel="stylesheet"> 
    ... 
</head> 

pero me sale este error:

expected xpath "//link" to return something (RSpec::Expectations::ExpectationNotMetError) 

Dado todo eso, cómo puedo probar una hoja de estilo?

Gracias!

Respuesta

3

Si desea comprobar que existe un archivo CSS en una página, entonces usted puede hacer lo siguiente:

page.should have_xpath("//link[contains(@href, 'style.css')]") 

Eso va a comprobar si existen elementos <link> donde el atributo contiene hrefstyle.css. El error sobre "xpath esperado para devolver algo" significa que el XPath que proporcionaste no existió en realidad; por qué cree que no estoy seguro, ya que tienes una etiqueta <link> perfectamente válida en el código HTML que has proporcionado.

1

Cuando estoy comprobando para un css lo que hago es algo así como

expect(page.body).to include('/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css')

Cuestiones relacionadas