2011-05-09 10 views
6

Estoy tratando de escribir una especificación de controlador para un controlador simple. Sin embargo, Capybara no está viendo ningún contenido de página. Sin embargo, mirar las páginas del sitio en mi navegador funciona bien. ¿Qué estoy haciendo mal?Capybara + RSpec solo ve páginas en blanco en las especificaciones del controlador. ¿Por qué?

T. Hanks!

My controller spec

My spec_helper.rb

My Gemfile

+0

¿Lo has probado sin Spork? Eso podría estar causando problemas. –

+0

La eliminación de Spork no cambia nada, parece. –

Respuesta

14

Es necesario indicar explícitamente su especificación controlador que desea que se hacen vistas en orden para que esto funcione. Modificar una especificación a tener este aspecto:

require 'spec_helper' 

describe PostsController do 
    render_views # Render this controller's views during spec execution. 

    before do 
    @post = Fabricate :post 
    end 

    # ... 
end 

Esto se describe en rspec de readme. Para una vista más detallada, vea el pepino de rspec-rails feature for 'render_views'.

Solo una palabra de precaución con esto. Hay razones por las que esto no es un comportamiento predeterminado:

  • Posiblemente, está mezclando dos preocupaciones al probar las vistas al mismo tiempo que los controladores. Ryan Bigg (ver comentarios) sugiere que sus pruebas podrían ser mejor consideradas como pruebas de integración, que generalmente viven en spec/integration en lugar de spec/controller.
  • La representación de las vistas puede ralentizar considerablemente la ejecución de las pruebas.

... No digo que no debe hacer esto, simplemente diciendo que usted debe tener claro por qué está .

Espero que ayude.

+3

Aconsejaría que el OP no utiliza pruebas de controlador para esto, sino que crea nuevas pruebas en 'spec/integration' para estos. Prueba de controlador prueba * acciones * individuales, la integración prueba toda la pila. –

+0

De acuerdo - de ahí mi comentario sobre las preocupaciones de mezcla. Sin embargo, lo has articulado mucho mejor que yo. Incorporaré tu comentario en la respuesta. –

+0

Los documentos generados por pepino también se publican: http://relishapp.com/rspec/rspec-rails/dir/controller-specs/render-views, http://relishapp.com/rspec/rspec-rails/dir/ especificaciones del controlador/views-are-stubbed-por-default –

Cuestiones relacionadas