C12 Unit Test
目录结构如下
lib/
person.rb
test/
tc_person.rb
#person.rb
class OldAgeException < StandardError
def initialize(info)
super(info)
end
end
class Person
attr_reader :name, :age, :gender
attr_writer :name, :age, :gender
def initialize(name, age, gender)
@name = name
@age = age
@gender = gender
end
def to_s
"[Person Name: #@name -- Age: #@age -- Gender: #@gender]"
end
def male?
@gender == 'Male' || @gender == 'male'
end
def old?
@age > 80
end
def climb
if old?
raise OldAgeException.new("The age #@age is too old!!!")
end
"#{self} climbs"
end
end
#tc_person.rb
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
require 'test/unit'
require 'person'
class TestPerson < Test::Unit::TestCase
def test_init
p = Person.new('AnkyHe', 27, 'Male')
assert_equal('AnkyHe', p.name)
assert_equal(27, p.age)
assert_equal('Male', p.gender)
end
def test_to_s
p = Person.new('AnkyHe', 27, 'Male')
assert_equal('[Person Name: AnkyHe -- Age: 27 -- Gender: Male]', p.to_s)
end
def test_male
p = Person.new('AnkyHe', 27, 'Male')
assert(p.male?)
p = Person.new('Xiaoli', 27, 'Female')
assert(!p.male?)
end
def test_old
p = Person.new('AnkyHe', 27, 'Male')
assert(!p.old?)
p = Person.new('Laoren', 81, 'Female')
assert(p.old?)
end
def test_climb
p = Person.new('AnkyHe', 27, 'Male')
assert_nothing_raised(){p.climb}
assert_equal('[Person Name: AnkyHe -- Age: 27 -- Gender: Male] climbs', p.climb)
p = Person.new('Laoren', 81, 'Female')
assert_raise(OldAgeException){p.climb}
end
end
分享到:
相关推荐
根据提供的文件信息,可以提取以下关于Ruby编程语言及其入门书籍《Programming Ruby 2nd》的知识点: 1. Ruby语言概述:Ruby是一种功能强大且实用的编程语言,被许多开发者所喜爱。它以智能、优雅和有趣而闻名。...
《Programming Ruby - The Pragmatic Programmer's Guide》第二版(2005年注释版)是一本在IT行业中享有盛誉的经典书籍,专门针对Ruby编程语言进行了深入浅出的讲解。该书不仅覆盖了Ruby语言的基础知识,还探讨了其...
《Programming Ruby 2nd Edition》是关于Ruby编程语言的经典指南,尤其对于想要深入理解并熟练掌握Ruby编程的开发者来说,这本书具有极高的价值。Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的语法和强大的...
《Programming Ruby》是一本关于Ruby编程语言的经典书籍,它的第三章深入探讨了Ruby的基本语法和核心概念。在这一章中,作者介绍了变量、常量、符号、数组、哈希等核心数据类型,以及控制流(条件语句和循环)和方法...
《Programming Ruby 2nd》是编程领域的一本经典著作,由Dave Thomas、Chad Fowler和Andy Hunt合著,被广大开发者誉为“程序员的指南”。这本书深入浅出地介绍了Ruby编程语言,帮助读者掌握这种优雅而强大的语言。 ...
### 知识点一:《Programming Ruby》书籍概述 - **书籍名称**:“Programming Ruby”(也被称为“Pickaxe Book”) - **版本**:本书为第二版 - **作者团队**:本书由Dave Thomas、Andy Hunt、Thomas Stewart、...
《Programming Ruby》是一本关于Ruby编程语言的经典著作,由Dave Thomas、Andy Hunt和Chad Fowler合著。这本书自2004年初版以来,一直是学习Ruby的首选资源,被誉为“Pickaxe”书,因其封面的图标而得名。Ruby是一种...
《Programming Ruby》被誉为是学习Ruby语言的最佳指南,这本书在IT界享有极高的声誉,被亲切地称为“镐头书”,其价值与影响力无远弗届。本书不仅详细介绍了Ruby语言的核心概念、语法结构以及编程实践,还深入探讨了...
《Programming Ruby》中文版第二版是一本专注于Ruby编程语言的经典教程。这本书的两个版本——高清扫描版和高清文字版,都是为了便于读者学习和查阅,其中都带有书签功能,帮助读者快速定位到相关内容。 Ruby是一种...
内含以下4个文档: 1、Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm 2、O'Reilly.Learning.Ruby.May.2007.chm 3、Programming Ruby 2e.pdf 4、ruby中文文档.chm
《The C Programming Language》这本书是C语言学习者的经典教材,对于初学者来说,它提供了深入浅出的讲解。本文将着重讨论第一章中提到的三个重要知识点。 首先,我们要理解循环终止的机制。在C语言中,常见的循环...
《Programming Ruby 1.9 (3rd edition)》是一本专为程序员编写的关于Ruby语言的权威指南,这本书的第三版详细介绍了Ruby 1.9版本的语言特性、库以及编程实践。Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的...
5. 实际应用:Rich Kilmer提到,在阅读了第一版《Programming Ruby》之后,他感到很受启发,随后创立了一家主要通过应用Ruby解决实际问题的公司,这表明了Ruby语言的实用性。 6. 社区和库的支持:Rich Kilmer还强调...
《Programming Ruby》是一本专注于介绍Ruby编程语言的经典著作,它为初学者和有经验的开发者提供了深入理解Ruby语言的全面指南。Ruby是一种面向对象、动态、灵活的编程语言,以其简洁、优雅的语法和强大的元编程能力...