I asked exactly this question on this list 2 days ago... See http://pastie.caboo.se/85887 for a working example. One has to mock out ActiveRecord::Errors::full_messages for it to work under Rails.
Cheers, Eivind Uggedal On 8/9/07, David Chelimsky <[EMAIL PROTECTED]> wrote: > 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 > _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users