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...
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 [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
-~----------~----~----~----~------~----~------~--~---