¿RSpec have_tag falla incluso cuando la etiqueta está presente?

Actualmente estoy haciendo el tutorial de Ruby On Rails de Michael Hartl y estoy comenzando con el desarrollo basado en pruebas. El tutorial exige que se escriban pruebas para garantizar que los títulos correctos estén presentes en nuestras páginas html.erb. Hay tres de estas páginas: inicio, contacto y acerca de. Las pruebas se ven así:

it "should have the right title" do
  get 'home' 
  response.should have_tag("title",
                         "Ruby On Rails Sample Application | Home")
end

Mi archivo home.html.erb se ve así:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Ruby On Rails Sample Application | Home</title>
</head>
<body>
<h1>Sample App Home</h1>
<p>This is the home page for the 
<a href="http://www.railstutorial.org/">Ruby on Rails Tutorial</a>
sample application.</p>
</body>
</html>

Como puede ver, la etiqueta del título está presente y envuelve el texto correcto. Sin embargo, cuando ejecuto mi prueba, aparece este mensaje de error:

'PagesController GET 'home' should have the right title' FAILED
 Expected at least 1 element matching "title", found 0.

¿Alguien puede explicar qué está pasando aquí? Gracias

preguntado el 16 de mayo de 11 a las 19:05

2 Respuestas

Tienes require 'spec_helper' en la parte superior de su pages_controller_spec.rb?

Tienes render_views declaración en su bloque de descripción?

Para John Paul Ashenfelter, pensé que save_and_open_page era el método Capybara y no Rspec.

contestado el 17 de mayo de 11 a las 00:05

Debe comenzar asegurándose de que la página se muestre correctamente usando

save_and_open_page

en su Rspec. Por lo general, hay un problema con la representación (por ejemplo, ¿tal vez xHTML no válido?)

También deberá agregar la gema de lanzamiento a su proyecto (por ejemplo, la gema 'launchy' en su Gemfile)

contestado el 16 de mayo de 11 a las 23:05

Verifique su diseño / archivo de aplicación; es posible que incluya dos veces los encabezados html si los tiene allí también. - John Paul Ashenfelter

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.