Sent from my iPhone
On 12 Oct 2008, at 12:35, Jay Pangmi <[EMAIL PROTECTED]
s.net> wrote:
>
> Frederick Cheung wrote:
>> Adding an extra test isn't going to help. Your test isn't passing
>> because your object is not valid
>>
>> Fred
>
> Where am I wrong? Here's how I've done...
>
Print out the object's errors and you'll see
Fred
> IN MODEL:
> ---
> ---
> ---
> ---
> --------------------------------------------------------------------
> class Fee < ActiveRecord::Base
> has_many :campsites
>
> validates_presence_of :per_person_rate, :family_rate
> validates_numericality_of :per_person_rate, :family_rate
>
> def validate
> errors.add(:per_person_rate, "should be greater than 0") if
> per_person_rate.nil? ||
>
> per_person_rate
> < 0.01
> errors.add(:family_rate, "should be greater than 0") if
> family_rate.nil? ||
> family_rate
> < 0.01
> end
> end
> ---
> ---
> ---
> ---
> --------------------------------------------------------------------
>
> IN fee_test.rb
> ---
> ---
> ---
> ---
> --------------------------------------------------------------------
> require File.dirname(__FILE__) + '/../test_helper'
>
> class FeeTest < ActiveSupport::TestCase
> # Replace this with your real tests.
> def test_truth
> assert true
> end
>
> def test_invalid_with_empty_attribute
> fee=Fee.new
> assert !fee.valid?
> assert fee.errors.invalid?(:per_person_rate)
> assert fee.errors.invalid?(:family_rate)
> end
>
> def test_positive_per_person_rate
> fee=Fee.new()
>
> fee.per_person_rate = -1.0
> assert !fee.valid?
> assert_equal "should be greater than 0",
> fee.errors.on(:per_person_rate)
>
> fee.per_person_rate = 0.0
> assert !fee.valid?
> assert_equal "should be greater than 0",
> fee.errors.on(:per_person_rate)
>
> fee.per_person_rate = 1.0
> assert fee.valid?
> end
>
> def test_positive_family_rate
> fee=Fee.new()
>
> fee.family_rate = -1
> assert !fee.valid?
> assert_equal "should be greater than 0",
> fee.errors.on(:family_rate)
>
> fee.family_rate = 0
> assert !fee.valid?
> assert_equal "should be greate than 0", fee.errors.on(:family_rate)
>
> fee.family_rate = 1
> assert fee.valid?
> end
>
> end
> ---
> ---
> ---
> ---
> --------------------------------------------------------------------
>
> I'm just copying from the book with very (almost no) changes. So, I
> can't figure out why here. thanks
> --
> Posted via http://www.ruby-forum.com/.
>
> >
--~--~---------~--~----~------------~-------~--~----~
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 rubyonrails-talk@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---