[rspec-users] be_valid (validates_format_of ..., :on => :create)

David Chelimsky dchelimsky at gmail.com
Mon Mar 2 10:50:07 EST 2009


On Mon, Mar 2, 2009 at 8:20 AM, Bart Zonneveld <zuperinfinite at gmail.com> wrote:
>
> On 28-feb-2009, at 11:45, MAwiniarski wrote:
>
>> Greetings,
>>
>> How to write Example which will check if model's variable's
>> format is valid using :on => :create, like this:
>>
>> class User < ActiveRecord::Base
>> ...
>>  validates_format_of       :email, :with => /.../, :on => :create
>> ...
>>
>> Using following code is not right:
>> it "should ..." do
>>   @user = users(:example_user)
>>   @user.email = 'invalid_email_format'
>>   @user.save
>>   @user.should_not be_valid
>> end
>
> Try:
>
> it "should ..." do
>   user = User.new # create a NEW user, instead of loading an already saved
> user from a fixtures file
>   user.email = 'invalid_email_format'
>   user.should_not be_valid
>   user.should have(1).errors_on(:email)
> end

+1

I might combine the first two lines:

  user = User.create(:email => "invalid_email_format")

That reads more clearly to me because the invalid email format is
assigned on create, not after. It would have an extra call to valid?
but I think it's worth it for the clarity of intent in this case.

Otherwise, this is the right idea, IMO.

Cheers,
David

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


More information about the rspec-users mailing list