Fork me on GitHub

Keep Learning Conhecimento nunca é o bastante

Postado em
27 August 2007 @ 1:36

Tag(s)
Ruby, Test-Driven Development

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

[…] Aprendizado orientado por testes February 8, 2009 | Filed Under Rails, Ruby  […]


Comentário por
Iniciando | Road to Ruby
2 December 2011 @ 8:40

[…] a primeira edição do Programming Ruby e o RubyKoans. Seguirei uma metodologia semelhante à desse post do blog Keep […]


Deixe um comentário