2011-05-19 6 views
12

Tengo un método de ayuda llamado current_user en mi controlador de aplicación (utilizado con Authlogic).Métodos de ayuda del controlador de aplicación no disponibles para Vistas Specs

especificaciones para las vistas utilizando ayudante que fallan (pero la vista está trabajando cuando se utiliza el navegador)

ActionView::Template::Error: undefined local variable or method 'current_user' for #<#<Class:0x0000000229b060>:0x00000002004248>

utilizo rspec 2.6.0.

¿Alguien tuvo el mismo problema? Por favor aconséjame. Gracias

Respuesta

11

Puede apagar el método de view.

view.stub(:current_user).and_return(user)

Esto también funciona en las especificaciones del ayudante.

+0

FYI: El objeto de vista también está disponible en las especificaciones de ayuda. – Jared

4

Los métodos de ayuda definidos por el controlador no se incluyen en el objeto auxiliar.

http://relishapp.com/rspec/rspec-rails/dir/helper-specs/helper-spec

+2

Hola David, gracias por responder tan rápidamente. Si entiendo correctamente tu respuesta, las vistas que usan helpers definidas en controladores con helper_method no se pueden probar con rspec porque rspec no puede acceder a esos helpers ... De alguna manera eso no parece correcto ... – Dorian

+0

https://github.com/rspec/ rspec-rails/issues/119 # issuecomment-309978 parece indicar que esto debe corregirse, sin embargo, parece no serlo (a partir de rspec-rails 2.10.1) –

Cuestiones relacionadas