All I want to do is set a session variable when I make a request.
Here’s my code:
class ProjectIntegrationTest < ActionController::IntegrationTest
def test_truth
user = user_for_test
user.access_project_index_page
end
def user_for_test
open_session do |thing|
def user.access_project_index_page
session[:user_id] = ‘someid’
get project_index_path
assert_response :success
end
end
end
end
I’m getting this error:
test_truth(ProjectIntegrationTest):
NoMethodError: undefined method `user’ for
#ActionController::Integration::Session:0x21d7c50
method method_missing in test_process.rb at line 464
method send! in integration.rb at line 448
method method_missing in integration.rb at line 448
method user_for_test in project_integration_test.rb at line 11
Line 11 is the line where “session[:user_id] = ‘someid’” is being set.
What am I doing wrong for setting the session?
-Kyle
On 7 May 2009, at 11:26, Kyle Peyton <rails-mailing-list@andreas-
s.net> wrote:
def user_for_test
open_session do |thing|
def user.access_project_index_page
Actually it is the above line that is raising the exception - there is
no user variable / method in scope here.
This code lois pretty strange - are you really trying to define
singleton methods on users?
Fred
I’m pretty new to integration testing and I’m not sure how to define
tests. I saw an example of someone doing it this way, so that’s the way
I formed mine. What is the best way to write a normal test that allows
me to set the “user_id” session variable so that the “get” can
successfully happen?
-Kyle
Frederick C. wrote:
On 7 May 2009, at 11:26, Kyle Peyton <rails-mailing-list@andreas-
s.net> wrote:
def user_for_test
open_session do |thing|
def user.access_project_index_page
Actually it is the above line that is raising the exception - there is
no user variable / method in scope here.
This code lois pretty strange - are you really trying to define
singleton methods on users?
Fred