On 8/8/07, Fischer, Daniel <[EMAIL PROTECTED]> wrote: > 1 def create > 2 @user = User.new(params[:user]) > 3 @user.save! > 4 self.current_user = @user > 5 redirect_to user_path(@user) > 6 flash[:notice] = "Thanks for signing up!" > 7 rescue ActiveRecord::RecordInvalid > 8 render :action => 'new' > 9 end
Try this: describe "/users/create" do before(:each) do User.stub!(:new).and_return(@user = mock_model(User)) end it "should redirect to show on successful save" do @user.should_receive(:save!) post :create response.should redirect_to(user_path(@user)) end it "should re-render new on failed save" do @user.should_receive(:save!).and_raise(ActiveRecord::RecordInvalid.new(@user)) post :create response.should render_template('new') end end Cheers, David > > I can't seem to properly spec this out. I am trying numerous things, the > latest one is this, which makes sense but it still fails... > > > it "should re-render new on an invalid record exception" do > post :create, :user => {:login => nil} > response.should render_template(:new) > end > > should re-render new on an invalid record exception > expected "new", got nil > > Any help would be great, thanks! > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users