Re: [rspec-users] Can't seem to spec a ActiveRecord::RecordInvalid exception properly...

2007-08-10 Thread Eivind Uggedal
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


Re: [rspec-users] Can't seem to spec a ActiveRecord::RecordInvalid exception properly...

2007-08-08 Thread Fischer, Daniel
It's redirecting to /users/1 so it's not causing a fail on the exception,
which I don't know why. My question is how to properly do this in rSpec?

On 8/8/07, Lance Carlson [EMAIL PROTECTED] wrote:

 Does it redirect instead?

 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
 
  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

Re: [rspec-users] Can't seem to spec a ActiveRecord::RecordInvalid exception properly...

2007-08-08 Thread David Chelimsky
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