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 #@fred.id

@request.session[:employee_id] = 1

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

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.

http://zentest.rubyforge.org/ZenTest/classes/Test/Rails.html
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

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com

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.

Bob

Vaibhav wrote: