Tengo un problema al probar mis controladores con RSpec: la llamada response.body siempre devuelve una cadena vacía. En el navegador, todo se procesa correctamente y las pruebas de funciones de pepino parecen hacerlo bien, pero RSpec falla todas y cada una de las veces.
Otras expectativas sobre el objeto de respuesta, como response.should render_template('index')
pasar sin problemas.
¿Alguno de ustedes ha tenido este problema antes? ¿Quizás la respuesta html se pueda obtener de alguna otra manera?
En cuanto a versiones, Rails 2.1.0, RSpec 1.2.7.
fuente
RSpec 2+: si desea verificar de un extremo a otro, de la URL al cuerpo de la respuesta, use una especificación de solicitud en lugar de una especificación de controlador .
fuente
Mientras trabajaba con un problema similar (que me llevó a esta pregunta), se me ocurrió que hay diferentes formas de despellejar al mismo gato. En otras palabras, en lugar de verificar el cuerpo del texto, es posible que pueda verificar el contenido del flash.
podría ser una comprobación equivalente a:
Para mí, este último parece un poco más flexible, ya que funcionará de cualquier manera, pero puede que no sea apropiado en todos los casos.
Salud,
Juan
fuente
De forma predeterminada, la configuración RSpec-rails deshabilita la representación de plantillas para las especificaciones del controlador
Una de las formas de solucionar este problema es asegurándose de habilitar la
render_views
configuración en surails_helper.rb
archivo. De esta forma, lo haces capaz de funcionar globalmente en todas tus pruebas.O use la declaración render_views en un grupo individual:
Puedes leer más sobre esto aquí .
fuente