Esse foi um erro meio difícil de perceber, e que nos deixou alguns dias travado. O Bernardo ajudou a encontrar e resolver esse erro:
Erro:
Nos testes, o "initialize.rb" carrega todos os arquivos .rb dentro de lib, inclusive o main.rb, o que não é a idéia e dá problema, pois quando tenta carregar main.rb ele executa o método main, que tenta usar algumas classes que ainda não foram carregadas (além disto, vc não quer que o main saia rodando quando vc executa os testes).
Soluções para este erro (escolher uma das duas):
-Colocar todas as classes dentro de uma pasta (chamei de classes) e deixar o main.rb fora. Assim initialize.rb só carrega o que estiver dentro da pasta classes. É preciso alterar os arquivos de teste (darem require em classes/initialize e não só initialize). É preciso também adicionar lib/classes ao load_path em initialize ($:.unshift File.join(File.dirname(FILE)) ), para fazer as chamadas de require procurarem arquivos dentro desta pasta (sem ser necessário declarar o caminho completo).
-Alterar a linha que carrega os arquivos em initialize.rb para Dir["#{File.dirname(FILE)}/**/*.rb"]..reject{|file| file.include?('main.rb')}.each{|file| require file}
Uma outra dica é pra quem não tiver linux (e consequentemente, não vai conseguir fazer o comando "telnet localhost 4344"), é só baixar o putty.exe. Deve ter na rede, ou, se não, é só dar uma olhada no google que aparece rapidinho.
Bom galera, boa sorte pra nós todos com esses últimos labs e boas férias!!!