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
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
>
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users