# How to use methods in application\_controller in tests

**URL:** <https://www.ruby-forum.com/t/how-to-use-methods-in-application-controller-in-tests/178959>\
**Category:** Rails\
**Created:** [November 14, 2009, 7:23am UTC](https://www.ruby-forum.com/t/how-to-use-methods-in-application-controller-in-tests/178959 "2009-11-14T07:23:34Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![scudco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/aca169/32.png) [@scudco](https://www.ruby-forum.com/u/scudco)\
**Post date:** [November 14, 2009, 7:23am UTC](https://www.ruby-forum.com/t/how-to-use-methods-in-application-controller-in-tests/178959/1 "2009-11-14T07:23:34Z")

</div>

Hi I have some protected methods in my application controller to handle  
logging in users and Id like to be able to use them in my tests. But  
whenever I try to run my tests i always get errors E.g.

NameError: undefined local variable or method `logged\_in\_user’ for  
#DashboardControllerTest:0x7f32bb483cb8

how do i get round this. Heres some code -

class ApplicationController \< ActionController::Base  
protected

def logged\_in\_user?  
@logged\_in\_user = User.find(session[:user]) if session[:user]  
end

def logged\_in\_user=user  
if !user.nil?  
session[:user] = user  
@logged\_in\_user = user  
end  
end

def logged\_in\_user  
if logged\_in\_user?  
return @logged\_in\_user  
end  
end  
end

and my testfile

require ‘test\_helper’  
require ‘application\_controller’

class DashboardControllerTest \< ActionController::TestCase  
fixtures :users

test “welcome page” do  
get :welcome  
assert\_response :success  
end

test “logged in user can access dashboard” do  
assert logged\_in\_user, users(:valid\_user)  
get :welcome  
assert\_response :success  
end  
end
