Forum: RSpec Spec::Rails, "model.should have(1).error_on(:attribute)" passes when?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Bjorn B. (Guest)
on 2009-03-24 01:16
(Received via mailing list)
Spec::Rails people,

I'm curious about:
  - model.should have(1).error_on(:attribute)

displayed in the URL below:
  http://rspec.rubyforge.org/rspec-rails/1.2.2/class...

The Rspec peepcode screencast suggests that
model.should have(1).error_on(:attribute)
should pass if
model.send(:attribute)
returns nil

For me, I get an exception from the rspec script.

My work-around is simple.

Instead of:
  - model.should have(1).error_on(:attribute)
I Use:
  -model.send(:attribute).should be_nil

But now I have the question:
  - What kind of error causes:
    - model.should have(1).error_on(:attribute)
    - to pass ??

--b
David C. (Guest)
on 2009-03-24 03:03
(Received via mailing list)
On Mon, Mar 23, 2009 at 6:10 PM, Bjorn B. <removed_email_address@domain.invalid>
wrote:
> should pass if
>  -model.send(:attribute).should be_nil
>
> But now I have the question:
>  - What kind of error causes:
>    - model.should have(1).error_on(:attribute)
>    - to pass ??

If you add this to your model:

  validates_presence_of :attribute

Then this will pass

  Model.new(:attribute => nil).should have(1).error_on(:attribute)

Cheers,
David
Phor G. (Guest)
on 2009-03-25 20:37
I added:
  - validates_presence_of :attribute

To my model.

The test now passes.

yay!!

Thanks David.
David C. (Guest)
on 2009-03-25 22:33
(Received via mailing list)
On Mar 25, 2009, at 1:37 PM, Phor G. <removed_email_address@domain.invalid> 
wrote:

> I added:
>  - validates_presence_of :attribute
>
> To my model.
>
> The test now passes.

Congrats! It took longer than it usually does, but you just
experienced the red and green parts of the red/green/refactor cycle.

Cheers,
David
This topic is locked and can not be replied to.