How do we create functional test when the model has association

Hi all,

I want to test my controller, but unfortunately the model that has
association to other model. I already have setup the parameter in the
test code but encounter this error:
  1) Error:
test_create(SprintsControllerTest):
ActiveRecord::StatementInvalid: SQLite3::SQLException:
sprints.project_id may not be NULL: INSERT
INTO "sprints"
("cancelled_date", "created_at", "end_date", "goal", "project_id",
"retrospective", "start_date", "updated_at")
VALUES (NULL, '2009-11-21 00:37:33.924413', '1901-01-01', 'Deliver
usable product', NULL, NULL, '1900-01-01', '2009-11-21
00:37:33.924413')

This is how my test code looks like:
assert_difference('Sprint.count') do
      post(:create, :sprint => {:project_id => '9999', :goal =>
'Deliver usable product',
                                :start_date => '1900-01-01', :end_date
=> '1901-01-01'})
    end

Have I setup the test code wrong? What am I missing here?

Thanks for the insights.

This is how my test code looks like:
assert_difference('Sprint.count') do
post(:create, :sprint => {:project_id => '9999', :goal =>
'Deliver usable product',
:start_date => '1900-01-01', :end_date
=> '1901-01-01'})
end

Have I setup the test code wrong? What am I missing here?

That looks reasonable. What is in the controller / model ?

Fred

is it possible the form is passing the project_id parameter to the
controller as something else? maybe as project ?
submit the form from a browser and look at the development.log file
and see what the HTTP request looks like, my guess is something like

Processing SprintsController#create (for 127.0.0.1 at .....) [POST]
Parameters: {"action"=>"create", "authenticity_token"=>"....",
"method"=>"post", "controller"=>"sprints",
"sprint"=>{"goal"=>"...", "start_date"=>"...", "project"=>"..."}
}

Note the key project vs project_id, just guessing here but a good
place to start