[rspec-users] Spec::Rails, "model.should have(1).error_on(:attribute)" passes when?

David Chelimsky dchelimsky at gmail.com
Mon Mar 23 19:18:26 EDT 2009


On Mon, Mar 23, 2009 at 6:10 PM, Bjorn Boulder <bornboulder77 at gmail.com> wrote:
> 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/classes/Spec/Rails/Extensions/ActiveRecord/InstanceMethods.html
>
> 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 ??

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

>
> --b
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list