controller test - setting session values not working

I have a functional test and am trying to set a session value

def test_should_check_number_of_jobs
session[:employee_id] = 1

@request.session[:employee_id] = 1

post :index
assert_equal 1, assigns(:jobs).size

when I try to run this test I get the following error
TypeError: Symbol as array index
job_controller_test.rb:29in '[]='
job_controller_test.rb:29in 'test_should_check_number_of_jobs'

if I hard code the employee_id in the controller and remove the session
call in the test, it works perfectly.
seems to be doing the same thing as me about 1/2 way down the page, so
it doesn't seem too unreasonable. Anyone know why this isn't working?

The request/controller/response is meant to be a sufficient stand-in for the real things, but remember that you're not running in the context of the controller where the session method would normally be found.


Rob Biedenharn

You guys rock!

Thanks for the help

Thats what Rob was talking about, you need to add @request, so you wind
up with
@request.session[:employee_id] = 1

I usually initalize a bunch of this stuff in the setup function, and
then later on accessing it is like normal without the @request.

Hope this helps, let me know if you need anything else.


Vaibhav wrote: