¿Cómo puedo probar que se utiliza un diseño específico en RSpec? He intentado template.layout, response.layout y response.should render_template ("layout") sin suerte.Diseño de prueba Rspec
Respuesta
En rspec 2, en una especificación de controlador, se utiliza render_template como usted adivinado, pero hay que incluir una ruta relativa al directorio de puntos de vista. Así que si su diseño es app/views/layouts/mylayout.html.erb, su especificación es el siguiente:
response.should render_template "layouts/mylayout"
# rspec-rails-1.3.x for rails-2
describe HomeController do
describe "the home page" do
it "should use the :home_page layout" do
get :index
response.layout.should == "layouts/home_page"
end
end
end
# rspec-2 for rails-3
describe "GET index" do
it "renders the page within the 'application' layout" do
get :index
response.should render_template 'layouts/application' # layout
response.should render_template 'index' # view
end
end
https://gist.github.com/11080d61648aaee51840 Estoy en rspec 2, rails 3. Obtengo una degradación con response.layout y los errores de template.layout sugeridos. –
Actualicé mi respuesta en función de sus comentarios. –
Además, se puede probar tanto, el diseño y la prestación de acción, en una sola línea en rspec-2:
response.should render_template(%w(layouts/application name_of_controller/edit))
La sintaxis actualizado para RSpec 3:
expect(response).to render_template(:index) # view
expect(response).to render_template(layout: :application) # layout
O si lo prefiere @Flov's one-liner, se puede escribir:
expect(response).to render_template(:index, layout: :application)
en cuenta que render_template
delegados a assert_template
. Puede encontrar esos documentos aquí: ActionController assert_template.
Solo una nota, esto ya no funciona y también la documentación está desactualizada. – Sebastialonso
- 1. Prueba de integración con rspec y diseño de sign_in env
- 2. RSpec: Prueba rescue_from
- 3. prueba rspec carrierwave - newbie
- 4. RSpec no prueba
- 5. rspec & inventar ayudantes de prueba
- 6. Prueba de advertencias usando RSpec
- 7. Prueba de ActiveAdmin con rspec
- 8. Problema de prueba Omniauth Rspec
- 9. Prueba ActiveSupport :: Notificaciones con rspec
- 10. prueba de integración de rspec con errores de diseño Error NoMethodError
- 11. Prueba de RSpec del controlador de sesión de diseño personalizado falla con AbstractController :: ActionNotFound
- 12. de prueba contenidos de hash utilizando RSpec
- 13. Controladores de prueba en gema con RSpec
- 14. Prueba de RSpec rota por paginación (Kaminari)
- 15. Prueba de controlador RSpec - "asigna" comportarse inesperadamente
- 16. Prueba de recursos anidados con RSpec
- 17. Prueba de controlador RSpec - blanco response.body
- 18. Prueba de "Publicar creación" con Rspec
- 19. plantillas de prueba RSpec que se queden
- 20. pone dentro método de prueba rspec
- 21. RSpec - uso doble prueba como argumento bloque
- 22. Prueba del controlador Rspec con Javascript
- 23. Cómo forzar una prueba RSpec a fallar?
- 24. ¿Cómo se prueba limitaciones ruta utilizando RSpec
- 25. Prueba RSpec para redirigir devuelve 200
- 26. capacidad de prueba de un diseño
- 27. Rspec: asignación de prueba de la variable de instancia
- 28. generador de motor de carriles de prueba con rspec
- 29. Prueba de variables de instancia en el controlador con RSpec
- 30. Prueba de salida a la línea de comando con RSpec
Y cómo se prueba que no se utilizó ningún diseño. Supongamos que el controlador no 'render: layout => false', por ejemplo. ¿Cómo lo pruebas? –