Not sure what's going on with some code in Programming Ruby, it's
early on where a SongList container is being created and test units
are run.
I'm receiving this error:
1) Error:
test_delete(TestSongList):
NameError: uninitialized constant TestSongList::Song
pickaxe_SongListContainer.rb:52:in `test_delete'
the rb:52 won't be right as I've put notes in comments between the
code, which I'm stripping here. Perhaps someone is familiar with
example. I checked errata with no luck..TIA
require 'test/unit'
class SongList
def initialize
@songs = Array.new
end
def append(song)
#songs.push(song)
self
end
def delete_first
@songs.shift
end
def delete_last
@songs.pop
end
def [](index)
@songs[index]
end
end
class TestSongList < Test::Unit::TestCase
def test_delete
list = SongList.new
s1 = Song.new('title1', 'artist1', 1)
s2 = Song.new('title2', 'artist2', 2)
s3 = Song.new('title3', 'artist3', 3)
s4 = Song.new('title4', 'artist4', 4)
list.append(s1).append(s2).append(s3).append(s4)
assert_equal(s1, list[0])
assert_equal(s3, list[2])
assert_nil(list[9])
assert_equal(s1, list.delete_first)
assert_equal(s2, list.delete_first)
assert_equal(s4, list.delete_last)
assert_equal(s3, list.delete_last)
assert_nil(list.delete_last)
end
end