Hi Jay,

I quite like this way of working its nice and clean and each test demonstrates 
exactly what you expect to be invalid and why

def setup
  @va.lid_attributes = {
    :parents => 1
    :children => 1,
    :family_clam => 1,
    :campsite => 'blah',
    :total => 100,
  }
end

def test_valid
  cart = Cart.create(@valid_attributes)
  assert cart.valid?
end

def test_valid_if_children_is_nil
  cart = Cart.create(@valid_attributes.merge(:children => nil)
  assert cart.valid?
  # or
  assert cart.errors.on(:children).nil?
end

def test_invalid_if_total_is_nil
  cart = Cart.create(@valid_attributes.merge(:total => nil)
  assert ! cart.valid?
  assert cart.errors.on(:total)  
end


I hope this helps.

RobL



Jay Pangmi wrote:
> Hi, I have a carts table with columns: campsite, arrival_date, nights,
> parents, children, family_claim, total. Here children and family_claim
> column allows null so even if the value is not passed for these columns
> it should be valid entry. How can I achieve this. At the moment I'm
> using this way in the cart_test.rb:
>
> def test_invalid_with_empty_attribute
>  cart = Cart.new(:children => "", :family_claim => 1)
>  assert !cart.valid?
>  assert cart.errors.invalid?(:campsite)
>  ..............................
> end
>
> So, I just wan't to make sure I'm on the right track. Thanks.
>   


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to