2012-01-27 12 views
12

Soy nuevo en rspec y bastante nuevo en los rieles. Al escribir casos de prueba para los controladores, he notado que render_views se usa con frecuencia. ¿Qué hace esto y qué sucede si no lo llamo?¿Qué hace render_views en rspec?

Respuesta

11

muestra la vista en la especificación del controlador. Si no coloca render_views, las vistas no se renderizarán, eso significa que se llama al controlador pero después de que se devuelve las vistas no se representan. Las pruebas del controlador se ejecutarán más rápido, ya que no tendrán que renderizar la vista, pero es posible que omita errores en la vista.

+0

Ok, tiene sentido. Entonces, si mi controlador no tiene ninguna vista asociada, entonces invocar 'render_views' no tiene sentido. Mis pruebas funcionan bien sin llamar 'render_views' así que supongo que ese es el caso. – SundayMonday

+1

sí, si no tiene vistas, entonces es discutible el punto – daniel

8

Se trata de isolation. La idea es que no desee que las especificaciones de su controlador fallen porque hay un error de sintaxis en la vista, lo que debería hacer que falle una especificación de solicitud o una especificación de vista. Si no está escribiendo especificaciones de solicitud o ver especificaciones o características de Cucumber, entonces render_views puede ayudarlo desde una perspectiva de cobertura de prueba.

+0

Como señaló [aquí] (https://groups.google.com/forum/?fromgroups#!topic/rspec/Gwnlou54x1M), agregaré que render_views también se puede utilizar en las especificaciones de ayuda si, por ejemplo, hay un ayudante que rinde un parcial o una plantilla. – aceofbassgreg