rSpec / Nested Routes / Mocks

I'm having a terrible time trying to test a nested route with rSpec.
I can't seem to tell rSpec to expect the call @item.user. The
following error message plagues me not matter how I try to fuss with
the mock:

Spec::Mocks::MockExpectationError in 'ItemsController handling POST /
items should redirect to the new course on successful save'
Mock 'Item_1002' received unexpected message :user= with (#<User:
0x..fdb7bcd38 @name="User_1003">)

Any help would be greatly appreciated.

Here's my setup. Problem line indicated with ******

--routes.rb--
map.resources :users do |users|
    users.resources :items
end

--items_controller--
def create
    @item = Item.new(params[:item])
    @item.user = User.find(params[:user_id])

    respond_to do |format|
      if @item.save
....etc.....

--items_controller_spec--
describe ItemsController, "create action" do

before do
    @item = mock_model(Item, :to_param => "1")
    @user = mock_model(User, :to_param => "1")
    Item.stub!(:new).and_return(@course)
    User.stub!(:find).and_return(@user)
  end

  def post_with_successful_save
  ***** @item.should_receive(:user)
    @item.should_receive(:save).and_return(true)
    post :create, :user_id => 1, :item => {}
  end

it "should redirect to the new course on successful save" do
    post_with_successful_save
    response.should redirect_to(item_url("1"))
end

The problem is that you're expecting #user when you're actually
calling #user=. So your expectation should be

@item.should_receive(:user=).with(@user)

and you'll also want to stub the call in your before block.
@item = mock_model(Item, :to_param => "1", :user= true)

Pat

erm, you don't need to stub it since you're setting the expectation
every time in post_with_successful_save.

Pat