Test case setup
require 'test/unit'
class Person
attr_accessor :first_name, :last_name, :age
def initialize(first_name, last_name, age)
raise ArgumentError, "Invalid age: #{age}" unless age > 0
@first_name, @last_name, @age = first_name, last_name, age
end
def full_name
first_name + ' ' + last_name
end
end
class PersonTest < Test::Unit::TestCase
FIRST_NAME, LAST_NAME, AGE = 'J', 'Y', 25
def setup
@person = Person.new(FIRST_NAME, LAST_NAME, AGE)
end
def test_first_name
assert_equal FIRST_NAME, @person.first_name
end
def test_last_name
assert_equal LAST_NAME, @person.last_name
end
def test_full_name
assert_equal FIRST_NAME + ' ' + LAST_NAME, @person.full_name
end
def test_age
assert_equal 25, @person.age
assert_raise(ArgumentError) { Person.new(FIRST_NAME, LAST_NAME, -4) }
assert_raise(ArgumentError) { Person.new(FIRST_NAME, LAST_NAME, 'four') }
end
end
def test_first_name
assert(FIRST_NAME == @person.first_name)
end
def assert_equal(expected, actual)
assert(expected == actual)
end
# $ ruby test/person_test.rb
Related examples in the same category