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