Me pregunto cómo validar los locales pasaron a prestar plantilla en el controladorCómo validar los locales de rendir plantilla en rspec
controlador:
def lelf_panel
# ...
if some_condition
locals_hash = some_very_long_hash_A
else
locals_hash = some_very_long_hash_B
end
render :partial => "left_panel", :layout => false, :locals => locals_hash
end
Spec actual:
it 'should render correct template for lelf_panel' do
# ...
get 'left_panel'
response.should render_template('system/_left_panel')
end
Ahora Necesito terminar Rcov para este controlador así que necesito agregar/modificar la especificación para cubrir ambos resultados de 'some_condition'. y quiero validar los locales 'lelf_panel' pasados a renderizar, como si solo validara el render_template, la página parcial renderizada para ambos resultados es la misma.
puedo comprobar el 'render_template' en documentos rspec en http://rubydoc.info/gems/rspec-rails/2.8.1/RSpec/Rails/Matchers/RenderTemplate:render_template
sólo proporciono y 2º params de mensaje, así que ¿cómo puedo probar los locales pasaron a prestar?
Esto funcionó para mí - pero sólo después de poner el comando get DESPUÉS del comentario should_receive, y también necesitaba agregar controller.stub (: render) para evitar un error, pero no estoy seguro de por qué ... – Phantomwhale
Esta es la respuesta superior. Cambiar una aplicación para que se ajuste a las necesidades de una biblioteca de prueba es un olor a código. – user94154
@Phantomwhale Acabo de golpear el mismo error que encontraste. El problema es que nuestra expectativa no procesa ni redirige nada, por lo que se llama al procesamiento predeterminado al final de la acción. Eso solía estar bien con rspec, pero ahora es una expectativa no satisfecha. –