REspecificaciones:stub un método de controlador en la vista
-
12-11-2019 - |
Pregunta
Ver especificación fallando porque el método ApplicationController, logged_in?
, quiere que se devuelva un usuario.
No estoy seguro de cómo especificar esto.Actualmente en before(:each)
Tengo:
controller.stub!(:logged_in?).and_return(FactoryGirl.create(:active_user))
@ballots = FactoryGirl.create_list(:full_ballot, 2)
que no funciona:
Failure/Error: render
ActionView::Template::Error:
undefined method 'logged_in?' for #<#<Class:0x007f9c908e4b10>:0x007f9c90873b68>
FWIW: :active_user
es la fábrica de usuarios para el usuario que está conectado al :full_ballot
Actualizar: De acuerdo a lo pedido:
class ApplicationController < ActionController::Base
...
def current_user
@current_user ||= User.find(cookies[:id_token]) if cookies[:id_token]
end
def logged_in?
current_user
end
...
end
Solución
Ver cómo idear ayudantes de prueba hazlo.Parece que puedes definir este método antes de las pruebas y debería funcionar:
def logged_in?
FactoryGirl.create :active_user
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow