Aprendizado orientado por testes
Você provavelmente já ouviu falar de Test-Driven Development (desenvolvimento orientado a testes) e provavelmente até utiliza esse método. Se não utiliza, deveria começar a pensar seriamente nisso.
Recentemente, passeando por alguns blogs, encontei um post falando sobre aprendizando orientado a testes. Neste caso, aprendizado de Ruby utilizando o framework para testes unitários incluso na linguagem (leia sobre o framework aqui e aqui). Veja o post e sua sequência.
Essa abordagem é bastante interessante pois estimula o aprendizado através da experimentação e da descoberta. Os testes unitários são uma excelente forma de descobrir como algo funciona em uma linguagem. É claro que a documentação é importante (e a documentação do Ruby é muito boa: simples, direta e completa), mas todos sabemos que a melhor documentação é o código-fonte, aquele que gira as engrenagens e faz com que tudo funcione (ou não…).
Estimulado por esses artigos, comecei a escrever alguns métodos de teste para aprender os comportamentos do Ruby, veja abaixo alguns deles (para a classe String):
require 'test/unit' class StringTest < Test::Unit::TestCase def test_length s = "Hello, World!" assert_equal(13,s.length) end def test_gsub s = "Este, texto, contem, muitas, virgulas" s = s.gsub(",", "") assert_equal("Este texto contem muitas virgulas", s) s = "Bola" s.gsub!(/[aeiou]/,"*") #altera o proprio objeto assert_equal("B*l*", s) end def test_regexp cep = "99000-999" patt = /d{5}[-]d{3}/ assert_match(patt, cep) fone = "(99) 9999-9999" patt = /[(]d{2}[)]s?d{4}[-]d{4}/ assert_match(patt, fone) fone = "(99)9999-9999" assert_match(patt, fone) end end |
2 Comentários