My problem: <br><br>Mock 'Task_1005' received unexpected message :user_id= with (1)<br><br>No matter what I do to try to stub that out it will still fail out and give me that message.<br><br>Here is my spec<br><br>
<br>describe TasksController, "handling POST /tasks" do<br> before(:each) do<br> @task = mock_model(Task, :to_param => "1", :save => true)<br> Task.stub!(:new).and_return(@task)<br> @user = mock_model(User)
<br> @user.stub!(:id).and_return(1)<br> @user.stub!(:login).and_return("moo")<br> User.stub!(:find).and_return(@user)<br> @params = {}<br> end<br> <br> def do_post<br> @request.session[:user] = @
<a href="http://user.id">user.id</a><br> post :create, :task => @params<br> end<br> <br> it "should create a new task" do<br> Task.should_receive(:user_id).with(@<a href="http://user.id">user.id</a>).and_return(true)
<br> Task.should_receive(:new).with(@params).and_return(@task)<br> do_post<br> end<br> <br> it "should redirect to /tasks" do<br> Task.should_receive(:user_id).with(@<a href="http://user.id">user.id</a>
).and_return(true)<br> do_post<br> response.should redirect_to(home_url)<br> end<br>end<br><br>And my controller:<br><br> def create<br> @task = Task.new(params[:task])<br> @task.user_id = current_user.id<br>
@task.status = Status.find_by_name('in progress')<br> <br> respond_to do |format|<br> if @task.save<br> flash[:notice] = 'Task was successfully created.'<br> format.html { redirect_to home_url }
<br> format.xml { head :created, :location => task_url(@task) }<br> else<br> flash[:error] = @task.errors<br> format.html { redirect_to home_url }<br> format.xml { render :xml => @
task.errors.to_xml }<br> end<br> end<br> end<br><br>So obviously it's failing with the current_user.id thing. I'm using restful_authentication.<br><br>Thanks!<br>