1 require File.expand_path(File.dirname(__FILE__) + '/edgecase')
3 class AboutInheritance < EdgeCase::Koan
26 def test_subclasses_have_the_parent_as_an_ancestor
27 assert_equal __, Chihuahua.ancestors.include?(Dog)
30 def test_all_classes_ultimately_inherit_from_object
31 assert_equal __, Chihuahua.ancestors.include?(Object)
34 def test_subcases_inherit_behavior_from_parent_class
35 chico = Chihuahua.new("Chico")
36 assert_equal __, chico.name
39 def test_subclasses_add_new_behavior
40 chico = Chihuahua.new("Chico")
41 assert_equal __, chico.wag
44 fido = Dog.new("Fido")
49 def test_subclasses_can_modify_existing_behavior
50 chico = Chihuahua.new("Chico")
51 assert_equal __, chico.bark
53 fido = Dog.new("Fido")
54 assert_equal __, fido.bark
57 # ------------------------------------------------------------------
65 def test_subclasses_can_invoke_parent_behavior_via_super
66 ralph = BullDog.new("Ralph")
67 assert_equal __, ralph.bark
70 # ------------------------------------------------------------------
74 super.bark + ", GROWL"
78 def test_super_does_not_work_cross_method
79 george = GreatDane.new("George")