Aprendizado orientado a 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
Comments
Leave a Reply